0

通过使用 pyodbc 的 python 脚本对 informix 数据库的更新是静默失败的。

我正在使用 pyodbc wiki 中提供的语法,并尝试了手动提交和自动提交

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

我也在 pyodbc 组中发布了这个问题,但不幸的是没有得到答案。

4

1 回答 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 驱动程序返回的内容。

于 2011-09-28T07:23:52.860 回答