2011-11-15 43 views
-1
int nRet = sqlite3_open(szFile, &mpDB); 

if (nRet != SQLITE_OK) 
{ 

} 

setBusyTimeout(mnBusyTimeoutMs); 

    sqlite3_exec(mpDB, "Begin Transaction;", 0, 0, &szError); 
    sqlite3_exec(mpDB, "UPDATE query", 0, 0, &szError);//some update table query 
sqlite3_exec(mpDB, "Commit Transaction;", 0, 0, &szError);///Here it gives error database is locked 

上面的代码适用于插入命令而不是更新命令。SQLITE:当使用更新查询时,数据库被锁定错误(错误-5)

+0

您是否涉及多个线程? –

+0

没有多线程 – Sandip

+0

我希望“更新查询”不是你真正的sql语句 –

回答

3

你有没有在某个sql编辑器中打开该文件,在同一时间?我最近使用了一个名为“SQLite数据库浏览器”的程序,它锁定了我的整个sqlite数据库,花了我一些时间来了解到底是怎么回事。

+0

在SQLite编辑器中没有打开文件 – Sandip

+0

@ sandip123:文件旁边是否有“-journal”文件?也许之前出错了,它锁定了数据库,请尝试删除这些文件。 –

+0

数据库文件夹中没有.journal文件。我想知道它是如何工作的插入命令,而不是更新 – Sandip