首页 > 解决方案 > Python - 更新 SQL 数据库成功,但数据库中没有更新

问题描述

我在循环中使用更新语句(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 数据库中的行的值行。基于Use UPDATE in a loop,我制作了 2 个不同的游标,因为数据库很大,但我不确定我是否做对了。

Process finished with exit code 0

谢谢!

编辑: 目的是从 SQL 中获取数据(A 列),其中包含 HEX 值的行,

(0xC209BF09BF09BA09B509B409B209B209B209B509BE09D209F2091A0A4A0A7D0AB40AE20A0A0B2A...)

varbinary (max)在 SQL中具有数据类型。然后在 Python 中使用编程,我获得了这样的浮点转换(对于每一行)

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值的附加列表,其中包含许多行。

计划是更新 SQL 中的行HEX to Float。更新后,我会将 SQL 数据库转换为 .txt。ID 是从 1 到 num of data (1,2,3...) 的订单号。

标签: pythonsqlpython-3.xsql-update

解决方案


推荐阅读