linux下C++语言sqlite数据库错误码:14:unable to open the database file

darkalliance 2016-11-11 06:28:56
问题是这样的:
在linux环境用C++编写数据库操作,在向sqlite数据库中插入数据时,当插入到近100条时,大约20分钟左右,会出现“unable to open the database file”的异常,以至于其他操作都失败了。

我从网上找了一下解决方案,但是都没有解决这个问题,我将失败的方案列举一下,希望大神们可以帮忙提供新的解决方案或思路:
1. 数据库路径不对 (这个我已经确认过了,路径肯定是对的)
2. 数据量太大,sqlite可能无法支持 (这个应该也不会,因为我在测试的时候数据库都删除干净了,重新建库之后还是有问题)
3.是不是有多次反复连接数据库操作 (这个原因应该不是,我代码里每次只连接一次数据库,然后程序结束后关闭数据库)

以上是我从度娘及论坛里找到的几个解决方案,然而都没有成功。所以我现在有点没有头绪,路过的大神们跪求help!


...全文
1279 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
darkalliance 2017-01-23
  • 打赏
  • 举报
回复
引用 1 楼 Blue_Some 的回复:
1.可能是驱动缘故,sqlite操作时需要先加载其驱动 好像有个dll文件 2.数据库文件是否同时有两个以上的连接
谢谢回复,我这边暂时解决了这个问题,应该是第二个原因, 我这边有A,B两个进程需要向一个数据库表里写数据,其中一个进程A在后台不停的写入数据库文件,可能导致B进程无法执行插入新的数据记录。 但是我记得如果是多线程问题,数据库报错信息应该是线程锁死,所以一开始没有向这个方向考虑。 多谢回答~~~
Blue_Some 2016-12-16
  • 打赏
  • 举报
回复
1.可能是驱动缘故,sqlite操作时需要先加载其驱动 好像有个dll文件 2.数据库文件是否同时有两个以上的连接

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧