Pypyodbc-запрос, возвращающий неверные данные - PullRequest
0 голосов
/ 08 февраля 2019

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

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

    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)

Я даже пытался получить строки с помощью EmailНРАВИТСЯ запрос, но он все еще только возвращал один ИД, и это несуществующее значение 105524

Сервер sql - это MSSQL server 2017 и я работаю с Python 3.7.2. Это также кажется проблемой с pyodbc и pypyodbc.

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

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

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

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

PS это незаконченный код, поэтому, пожалуйста, игнорируйте ужасное форматирование (я также знаю, что не должен бытьng позиционные параметры для SQL-запросов, но я не вижу другого способа достижения конечного результата)

1 Ответ

0 голосов
/ 08 февраля 2019

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

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

...