SQL 更新失败 - pyodbc - informix

0 投票
1 回答
2241 浏览
提问于 2025-04-17 02:59

通过一个使用pyodbc的Python脚本对informix数据库进行更新时,更新操作没有任何提示地失败了。

我使用了pyodbc维基上提供的语法,并尝试了手动提交和自动提交。

   cursor= conn.cursor()
   cursor.execute("update eqpt set notes='BOB' where serialno='SAM'") 
   conn.commit()
   conn.close() 

我也在pyodbc的讨论组里发了这个问题,但很遗憾没有得到回复。

1 个回答

1

两个想法:

  1. 检查有多少条记录被改变了(这个信息可以通过 execute() 得到),以及应该改变多少条记录(可以用 SELECT count(*) ... WHERE... 来查询):

    cursor= conn.cursor()
    
    rs = c.execute("SELECT count(*) FROM eqpt WHERE serialno='SAM'")
    for txt in c.fetchall():
        print('before %s' % (txt[0]))
    
    rows_affected = cursor.execute("update eqpt set notes='BOB' where serialno='SAM'") 
    print('rows_affected: %d' % (rows_affected))
    
    rs = c.execute("SELECT count(*) FROM eqpt WHERE serialno='SAM'")
    for txt in c.fetchall():
        print('after %s' % (txt[0]))
    
    conn.commit()
    conn.close() 
    
  2. 你可以开启 ODBC 跟踪,查看 ODBC 驱动返回了什么信息。

撰写回答