1
我正在使用C程序與sqlite3。有時插入作品。但有時候,它不能正常工作。 assert(retval == SQLITE3_OK) 給出錯誤。在調試時,我發現)sqlite3_step的RETVAL值(是錯誤代碼= 5 是指數據庫文件正忙 即使sqlite3_close()返回錯誤代碼關閉5sqlite3關閉語句不起作用
如何關閉數據庫連接的任何想法,甚至什麼時候很忙?
我正在使用C程序與sqlite3。有時插入作品。但有時候,它不能正常工作。 assert(retval == SQLITE3_OK) 給出錯誤。在調試時,我發現)sqlite3_step的RETVAL值(是錯誤代碼= 5 是指數據庫文件正忙 即使sqlite3_close()返回錯誤代碼關閉5sqlite3關閉語句不起作用
如何關閉數據庫連接的任何想法,甚至什麼時候很忙?
您可能正處於交易中。請嘗試檢查http://www.sqlite.org/c3ref/get_autocommit.html以瞭解有關sqlite3_get_autocommit()
如何工作的說明。如果它不在自動提交中,它應該返回一個零,這意味着有一個打開的事務。
或者,如果你懷疑你的數據庫可能仍做某件事情,你可以用sqlite3_busy_timeout()
設置一個計時器。 http://www.sqlite.org/c3ref/busy_timeout.html
您是否使用事務控制?你有沒有嘗試發送「提交」? – amphetamachine 2010-01-27 05:29:36