当前位置: 代码迷 >> 其他数据库 >> sqlite数据库打不开unable to open database file,该怎么解决
  详细解决方案

sqlite数据库打不开unable to open database file,该怎么解决

热度:808   发布时间:2016-05-05 08:24:29.0
sqlite数据库打不开unable to open database file
最近做一个项目,用到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;
}

------解决方案--------------------
压力测试? 你用的是多个客户端同时访问?还是?
需要说明的是SQLite对多用户并发访问支持得非常不好,或者说压根就不支持。
需要在应用代码层自行控制。
------解决方案--------------------
估计是有写冲突吧。 OPEN的时候仅是READ》
------解决方案--------------------
具体问题具体分析。到达上限以后,可能exec又要打开文件一次执行别的操作。从而造成你说的错误。
  相关解决方案