Я использовал оператор обновления в цикле (Python) для обновления базы данных SQL, при отладке и выполнении не выявлялось никаких ошибок, но когда я проверял базу данных SQL, изменений не было.Не могли бы вы указать, где я ошибся?Вот некоторые фрагменты кода
query = """ select A from Table """
pyodbc.lowercase = False
conn_str= (
r'Driver={ODBC Driver 11 for SQL Server};'
r'Server=MYLAPTOP;'
r'Database=Access;'
r'Trusted_Connection=yes;'
r'CHARSET=UTF8;'
)
#open cursor
crsr1 = cnxn.cursor()
crsr2 = cnxn.cursor()
#Execute SQL to update
crsr1.execute(query)
aList = [item[0] for item in crsr1.fetchall()]
for row in crsr1.fetchall():
crsr2.execute("""UPDATE Table SET A=(?) WHERE ID =(?)""", (row_list, row))
cnxn.commit()
crsr1.close()
crsr2.close()
row_list
, содержащие строки значений, которые я хочу использовать для обновления строк в базе данных SQL.Основываясь на Использовать UPDATE в цикле , я сделал 2 разных курсора, потому что база данных велика, но я не уверен, правильно ли я поступил.
Process finished with exit code 0
Спасибо!
Редактировать: Цель состоит в получении данных (столбец A) из SQL, который состоит из строк значений HEX,
(0xC209BF09BF09BA09B509B409B209B209B209B509BE09D209F2091A0A4A0A7D0AB40AE20A0A0B2A ...)
с типом данных SQL varbinary (max)
.Затем, используя программирование на Python, я получил преобразование с плавающей запятой, как это (для каждой строки), 2253.0,2270.0,2285.0,2295.0,2301.0, ......
Над числами с плавающей запятой только одна строка.row_list
- это добавленный список приведенных выше значений, который содержит много строк.
И планируется обновить строки в SQL с HEX to Float
.После обновления я преобразую базу данных SQL в .txt.Идентификатор - это номер заказа от 1 до num данных (1,2,3 ...).