我正在編寫一個使用由fmdatabase包裝的sqlite3的iOS應用程序。我遇到了這樣的問題:在某些時候,我的程序停留在FMDatabase庫的一個循環中,特別是一個調用sqlite3_step並發現數據庫正忙的函數,然後一遍又一遍地重試。如何調試鎖定的sqlite3數據庫
我正在尋找一般的調試工具和技巧,因爲這將是太多,給我在這裏的整個設置。有些事情可能會造成影響,我打開了一個數據庫句柄來處理已經在另一個線程中有句柄的數據庫。 sqlite3_threadsafe()返回2,所以我知道它的啓用。我也通過製作一個非常簡單的選擇和更新語句來測試這個新的連接。當我讓我的程序運行,並嘗試運行數據庫更新時,我卡住了。
我的程序自己創建的update語句沒有錯,因爲當我不打開兩個連接時,這個查詢運行正常。然而,我沒有看到我可能會出錯的地方...
任何幫助或提示,我可能會錯的地方將不勝感激。
您是否提交了更新?另請參閱[解鎖通知方案](http://www.sqlite.org/unlock_notify.html) – Benoit 2011-04-20 15:32:16
fmdatabase調用sqlite3_finalize但不提交。我承諾它,但似乎沒有任何區別 – Ying 2011-04-20 16:35:34