我正在编写一个使用由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