sqlite错误处理:library routine called out of sequence
2016-07-04 23:29
369 查看
用c++调sqlite 3.2 api,概率性遇到library routine called out of sequence错误,出现错误后,数据库连接断开,后面的操作都无效。
查了官方的资料,提到4个可能的原因:
1.调用API所用到的指针,没有从sqlite3_open()或者是sqlite3_open16()获得,或者sqlite3_open()函数已经将数据库关闭了
2. 两个或者更多的线程同时访问该数据库
3. sqlite3_step()所用到的变量statement指针
4. 试图将values绑定到一个正在运行的statement上
分析了下自己的代码,发现存在多线程访问的问题,一个存储线程,一个查询线程。加锁保护后OK
查了官方的资料,提到4个可能的原因:
1.调用API所用到的指针,没有从sqlite3_open()或者是sqlite3_open16()获得,或者sqlite3_open()函数已经将数据库关闭了
2. 两个或者更多的线程同时访问该数据库
3. sqlite3_step()所用到的变量statement指针
4. 试图将values绑定到一个正在运行的statement上
分析了下自己的代码,发现存在多线程访问的问题,一个存储线程,一个查询线程。加锁保护后OK
相关文章推荐
- SQLite教程(十一):临时文件
- SQLite中重置自动编号列的方法
- 保护你的Sqlite数据库(SQLite数据库安全秘籍)
- SQLite教程(十):内存数据库和临时数据库
- SQLite 入门教程二 SQLite的创建、修改、删除表
- 详解SQLite中的数据类型
- 详解SQLite中的查询规划器
- C#简单查询SQLite数据库是否存在数据的方法
- C#操作SQLite数据库方法小结(创建,连接,插入,查询,删除等)
- C#封装的Sqlite访问类实例
- SQLite中的B-Tree实现细节分析
- SQLite 中文指南之FAQ第1/6页
- Android Sqlite命令详解(基本命令)
- SQLite 内存数据库学习手册
- SQLite中的WAL机制详细介绍
- Sqlite数据库里插入数据的条数上限是500
- SQLite速度评测代码
- 简单分析SQLite4的一些设计改变
- C++操作SQLite简明教程
- C#实现Excel导入sqlite的方法