引言
最近Linux课设要求使用qt和sqlite进行开发,本来很简单的一次编程,结果我遇到了sqlite库级锁。。。虽然最后成功度过难关,但sqlite给我的印象太深了,所以写下这篇博客。
问题描述
开发过程中有这样一个功能需要去实现:
点击一个按钮,其对应的槽函数应进行两个操作,从一个表中查询出某信息(例如ID,name),然后将这些信息插入到另一个表中。也就是说,一个函数要实现一次查询、一次插入。
然后,“database is locked”这个问题就出现了。
解决过程
以下是我解决该问题时的思路:
1.查百度。
无论输入什么,只要有”sqlite“,”库级锁“等关键字,度娘就会以”完美解决sqlite库级锁问题“等的回应我, 给我带来的烦恼暂且不谈。
得到的方法有:1.添加事务; 2.信号量;3.select操作时申请的sqlite3_ptmt对象要在最后释放
4.sqlite* pDb,pDb最后应释放;5.一个函数中不能频繁地打开关闭数据库。
以上方法都进行试验无果后,我只能执行第二步。
2.我决定