Запрос на обновление с использованием курсора python odbc - не работает

У меня этот запрос выполнен со следующим фрагментом:

cursor2.execute("UPDATE datatable SET data1 = ?, data2 = ?, data3 = ? WHERE id = ?",[d1,d2,d3,i])
print("affected rows = {}".format(cursor2.rowcount))

Затронутые строки возвращают 1, но строка в базе данных не обновлена.

Печать d1,d2,d3 - это нормально, только обновление в базе данных не работает.

Что-то не так с функцией?

Дополнительный:

Я пробовал вот так:

sql_update_query = """UPDATE datatable SET data1 = %s, data2 = %s, data3 = %s WHERE id = %s"""
inputData = (d1,d2,d3,i)
cursor2.execute(sql_update_query, inputData)

Но он повторяет эту ошибку:

('HY000', 'The SQL contains 0 parameter markers, but 4 parameters were supplied')

Спасибо за помощь.


person Ronald    schedule 17.09.2019    source источник
comment
Возможно, вам понадобится выпустить commit где-нибудь. См. stackoverflow.com/questions/20199569/pyodbc-insert-into-sql.   -  person Justin Ezequiel    schedule 17.09.2019


Ответы (1)


Похоже, вас не хватает .commit()

Пример:

cursor2.execute("UPDATE datatable SET data1 = ?, data2 = ?, data3 = ? WHERE id = ?",(d1,d2,d3,i))
cursor2.commit()
person Rakesh    schedule 17.09.2019