在我們的web應用程序運行的linux服務器上,我們也有一個使用 sqlite(它用c編寫)的小應用程序。什麼時候檢查數據庫是否被鎖定在sqlite中的錯誤
對於我們使用以下命令執行數據庫操作:
sqlite3_prepare_v2
sqlite3_bind_text or sqlite3_bind_int
sqlite3_step
sqlite3_finalize
每一個現在,再有就是併發情況下,我得到了以下錯誤:
database is locked
所以我想:「這當一個進程寫入某個記錄時,另一個人正在嘗試讀取完全相同的記錄。「
因此,在每一個可能發生碰撞的步驟命令之後,我檢查了這個錯誤。當它發生時,我等了幾毫秒,然後再次嘗試。
但sqlite錯誤「數據庫被鎖定」仍然發生。
所以我改變了每一步命令和它後面的代碼行。不知何故,我認爲這個「數據庫被鎖定」的錯誤只能發生在step命令中。
但錯誤不斷出現。
我的問題是現在:
我必須爲「ERROR_CODE == 5」(數據庫被鎖定)任何sqlite3的命令後檢查?
非常感謝提前