2011-09-24 83 views
0

使用pyodbc通過python腳本更新informix數據庫的過程失敗。SQL更新失敗 - pyodbc - informix

我使用的語法在pyodbc維基提供,並試圖手動提交和自動提交

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

我張貼的pyodbc組在這個問題上也可惜沒有得到答案。

+0

從何種意義上講,他們失敗了嗎?你在'eqpt'中有一個序列號爲''SAM'的項目嗎? pyodbc信號如何失敗?在顯示的代碼中沒有可見的測試。爲什麼你需要更新語句上的遊標(這可能表明我幾乎完全缺乏pyodbc的知識)?這是一個單獨的聲明,只需要執行。在執行任何操作之前是否需要打開遊標? –

回答

1

兩個想法:

  1. 檢查多條記錄是如何改變的(它是由​​retured),以及有多少記錄應當被改變(使用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驅動程序返回的內容。