Python - обновление базы данных SQL успешно, но обновление в базе данных не было сделано - PullRequest
0 голосов
/ 18 марта 2019

Я использовал оператор обновления в цикле (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 ...).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...