sqlite数据库打不开unable to open database file

灵曦2016 2012-11-05 09:00:18
最近做一个项目,用到sqlite3,昨天做了压力测试,刚开始一直是好好的,可是大约对数据库的存取操作一个半系小时就会出现unable to open database file,这个问题,网上找了很多,大都是权限问题,可是我这里数据库文件及文件夹的权限全是chmod 777了,而且出现unable to open database file这个错误的地方竟然是sqlite3_exec,以下是实现的代码,希望高手能指点一下,这个问题已经困扰了我好多天了!

rc = sqlite3_open(DBName, &pDB);
if(rc)
{
printf( "(%s): Cannot open dataBase: %s, Error (%d): %s\n",
__FUNCTION__, DBName, rc, sqlite3_errmsg(pDB));
goto exit;
}
rc = sqlite3_exec(pDB, sqlCmd, 0, 0, &errMsg);
if(rc)
{
printf("(%s): SQL Warning (%d): %s\n", __FUNCTION__, rc, errMsg);
}
exit:
if(pDB)
{
sqlite3_close(pDB);
pDB = NULL;
}
...全文
8951 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
duoduo103 2013-09-28
  • 打赏
  • 举报
回复
你好楼主,我也碰到了和你相似的问题我是在settings数据库中进行压力测试,设置的是Settings.System这个表里面的数据,一关机就设置一个值,然后一直关机开机关机开机,过了很久就会报android.database.sqlite.SQLiteCantOpenDatabaseException: unable to open database filefile这个异常。这是啥原因啊。
iihero_ 2012-11-06
  • 打赏
  • 举报
回复
具体问题具体分析。到达上限以后,可能exec又要打开文件一次执行别的操作。从而造成你说的错误。
ACMAIN_CHM 2012-11-06
  • 打赏
  • 举报
回复
估计是有写冲突吧。 OPEN的时候仅是READ》
iihero_ 2012-11-05
  • 打赏
  • 举报
回复
压力测试? 你用的是多个客户端同时访问?还是? 需要说明的是SQLite对多用户并发访问支持得非常不好,或者说压根就不支持。 需要在应用代码层自行控制。
灵曦2016 2012-11-05
  • 打赏
  • 举报
回复
多谢回答,问题已解决。 与数据库无关,是由于其它文件打开后没有关闭,打开文件数达到系统上限。 不过我还是很疑惑,为什么无法打开文件会导致数据库执行sql命令时会出错,但是open命令可以成功呢?

2,208

社区成员

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

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