Запрос Pypyodbc возвращает неверные данные

Привет, так немного странно, я запускаю SQL-запрос SELECT [idPerson] FROM tblPersons WHERE [Email] LIKE 'Joe.Pike%'

Если я запускаю это на сервере, я получаю свой правильный идентификатор человека, однако, когда я запускаю его в своем коде, я получаю случайный идентификатор человека, которого не существует, теперь еще более странно то, что мой второй бит кода запрашивает на основе идентификатора человека и который возвращает значение

    UserName = row[1]+'.'+row[2]
    Password = 'XXXXXXXX'
    Email = UserName + '@XXXXXXX.org.uk'

    emaillike = [str(row[1]+'.'+row[2]).replace("'", '')+"%"]

    sql = ("""SELECT [idPerson] FROM tblPersons WHERE [Email] LIKE {}""").format(str(emaillike).replace("[","").replace("]",""))
    PersonId = cursor.execute(sql).fetchone()

    PersonPin = \
        str(cursor.execute('SELECT [Pin] FROM tblPersonPins WHERE [PersonId] = ?'
                       , [PersonId[0]]).fetchone()).replace("'","").replace("(","").replace(")","").replace(",","")

    print(sql)
    print(emaillike)
    print(str(PersonId))
    print(PersonPin)

Я даже пытался получить строки с помощью запроса электронной почты LIKE, но он все равно возвращал только один идентификатор, и это несуществующее значение 105524.

Сервер sql - это сервер MSSQL 2017, и я использую Python 3.7.2. Это также похоже на проблему с pyodbc, а также с pypyodbc.

Мои операторы печати возвращают:

SELECT [idPerson] FROM tblPersons WHERE [Email] LIKE 'Joe.Pike%' ['Joe.Pike%'] (105524,) 7271

Но числа должны быть разными и еще раз подтверждать, что когда я запускаю распечатанный оператор sql в разработчике сервера sql, он возвращает правильные данные.

заранее спасибо

P.S. Это незаконченный код, поэтому, пожалуйста, не обращайте внимания на ужасное форматирование (я также знаю, что мне не следует использовать позиционные параметры для sql-запросов, но я не вижу другого способа добиться конечного результата)


person joe___pike    schedule 08.02.2019    source источник
comment
Дважды проверьте строку подключения, чтобы убедиться, что вы подключаетесь к одному и тому же экземпляру SQL Server как из Python, так и из SSMS (или любого другого автономного клиента, который вы используете для проверки результатов). Вы говорите, что idPerson 105524 не существует, но очевидно, что он существует, по крайней мере, в базе данных, к которой подключается ваш код Python.   -  person Gord Thompson    schedule 08.02.2019


Ответы (1)


Боже мой, пожалуйста, пристрелите меня!

Неправильная база данных, человек, я хотел бы удалить вопросы

person joe___pike    schedule 08.02.2019