我在循环(Python)中使用了update语句来更新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数据库中的行的值的行。
基于Use UPDATE in a loop,我创建了2个不同的游标,因为数据库很大,但是我不确定我是否做对了。
Process finished with exit code 0
谢谢!
编辑: 目的是从SQL获取数据(列A),该数据由HEX值的行组成
(0xC209BF09BF09BA09B509B409B209B209B209B209B509BE09D209F2091A0A4A0A7D0AB40AE20A0A0B2A ...)
在SQL中具有varbinary (max)
数据类型。然后在Python上使用编程,我像这样(对于每一行)都获得了float转换
1999.0,1998.0,1998.0,2005.0,2021.0,2047.0,2077.0,2111.0,2145.0,2177.0,2205.0,2231.0,2253.0,2270.0,2285.0,2295.0,2301.0,......
以上是仅一行的浮点数。 row_list
是上述值的附加列表,其中包含许多行。
计划是从HEX to Float
更新SQL中的行。更新后,我将SQL数据库转换为.txt。
ID是从1到num数据(1、2、3 ...)的订单号。