我正在使用C++ shell扩展DLL,它用于读取数据到SQLite数据库表中并将数据写入数据库。还有另一个应用程序(exe)用于访问所有表。SQLite数据库文件在插入/删除期间被锁定
有时,当我尝试删除/插入/更新到SQLite数据库表时,我的dll显示异常“数据库文件被锁定”。这是因为其他应用程序此时正在访问表。
有没有什么办法可以解决这个问题从我的DLL?我是否可以使用该解决方案为在链接中提到:“http://stackoverflow.com/questions/6455290/implementing-sqlite3-busy-timeout-in-an-ios-app”
在当前的代码,我正在使用CppSQLite3.cpp方法execQuery(const char * szSQL)来执行SQL查询。
请指教。
谢谢@ DJK。谢谢omggs。我们的exe和DLL应用程序正在访问相同的数据库表。 Exe访问table1,table2和table3。 DLL正在访问table1和table2。问题是Exe-table3插入需要更长的时间。这导致数据库文件锁定方案。我认为解决方法是将table3移动到另一个数据库。我认为这会解决我们的问题 – JChan 2012-08-07 14:49:22
@JChan:不客气!当然,您可以将表移动到另一个数据库或增加适合您的应用程序的繁忙时间! – omggs 2012-08-08 04:37:44