Python-更新SQL数据库成功,但未进行数据库更新

时间:2019-03-18 04:59:09

标签: python sql python-3.x sql-update

我在循环(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 ...)的订单号。

0 个答案:

没有答案