sqlite库级锁

在Linux课设中使用qt和sqlite时遇到库级锁问题,导致"database is locked"。问题出现在一个查询-插入操作的函数中,由于在while循环中错误处理查询结果,使读操作无法结束,进而引发库级锁。了解SQLite的锁机制后,发现读写操作顺序执行是符合要求的,问题根源在于登陆函数中的查询操作。此次经历强调了对知识理解与灵活应用的重要性。
摘要由CSDN通过智能技术生成

  引言

          最近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.我决定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值