我有一個奇怪的問題,我無法複製和解決問題。使用SELECT LAST()與pyodbc和MSACCESS有時會返回相同的值
我在Python中使用pyodbc庫來訪問MS Access 2007數據庫。該腳本基本上只是將一個csv文件導入Access以及其他一些技巧。
我想先保存一個'Gift Header' - 然後獲取它所保存的自動編號的id(GiftRef) - 並使用此值保存1個或多個關聯的'Gift Details'。
一切正常,因爲它應該 - 90%的時間。其他10%的時間Access似乎卡住,並重復返回相同的值cur.execute(「從tblGiftHeader」選擇最後(GiftRef)「)。
一旦卡住,它將在腳本持續時間內返回此值。在處理特定條目時或在執行過程中的任何特定時間都不會發生這種情況 - 它看起來完全隨機發生了 。
而且我知道,它返回錯誤的值 - 換句話說,禮品頭是被保存 - 而被賦予了新的,獨特的ID - 但無論出於何種原因被調用時不能正確返回值。
SQL = "insert into tblGiftHeader (PersonID, GiftDate, Initials, Total) VALUES "+ str(header_vals) + ""
cur.execute(SQL)
gift_ref = [s[0] for s in cur.execute("select last(GiftRef) from tblGiftHeader")][0]
cur.commit()
任何想法或見解,將不勝感激。
謝謝我會嘗試通過一些測試運行此方法。我已經實現了它到我的代碼(一個快速的SQL行更改) - 它似乎工作得很好..但我原來的帖子中的代碼也工作大部分時間。我相信你的想法是正確的,但訪問並不總是相同'最後',我想:) – proc3ss