Запрос на обновление Python SQL: ожидается строка или целочисленный адрес вместо экземпляра экземпляра

Я использую Python 2.7 и pypyodbc для выполнения запросов SQL, но всякий раз, когда я запускаю запрос на обновление с использованием python,

cursor.execute("UPDATE tbl_User SET gender = ? WHERE id = 1", ['male'])

Я получаю ошибку:

TypeError: string or integer address expected instead of instance instance

Тот же запрос работает, если я запускаю его непосредственно на SQL Server.

2 ответа

Проблема была в том, что я не поставил точку с запятой в конце запроса. Решение:

cursor.execute("UPDATE tbl_User SET gender = ? WHERE id = 1;", ['male'])

Как насчет этого:

gender = 'male'
cursor.execute("UPDATE tbl_User SET gender = {:s} WHERE id = 1".format(gender))

Также убедитесь, что версия sqlite для Python и SQL Server совпадают. Для питона один тип:

import sqlite3
print(sqlite3.sqlite_version)
Другие вопросы по тегам