我正在用sqlite创建一个应用程序.我正在数据库上执行所有类型的任务Insert, Update, Delete, Select.
为此,我每次都打开数据库,然后使用sqlite3_step()和在我使用的结果sqlite3_finalize()和sqlite3_close()方法之后执行我的查询.它在大多数情况下运作良好.我没有得到它的发生但有时我的数据库被锁定与我遵循的相同的过程,一段时间它的工作.
我需要解锁数据库,所以即使在任何情况下我的数据库都被锁定然后我可以解锁它或Plz指导我,如果我可以通过代码检查我的数据库被锁定所以我可以用资源数据库替换我的数据库.
我也在使用webservice,所以我没有关于数据丢失的问题.如果我的数据库被锁定或者有任何方法可以解锁数据库,我是否有意义.
小智 8
一开始就打开一次数据库.最后在AppWillterminate函数中关闭它.您只是通过在每个数据库函数中打开和关闭它来消耗时间.
就数据库锁定而言,当某些应用程序仍在使用它并且其他应用程序试图获取其访问权限时,它会被锁定.
这可能是您的应用程序,或者可能是您的Firefox的sqlite管理器加载项.
我曾经遇到过同样的问题,我做的是什么
禁用sqlite附加组件中的选项,它会记住以前打开的数据库.
重启xcode,模拟器.
制作sqlite文件(桌面)的副本,从项目中删除它,然后再从桌面添加项目.
最后的解决方案听起来很奇怪,但那时我很生气.
我希望这可以帮到你.