我正在使用Sqlite为WP7创建一个数据库驱动的应用程序。我已经从Google Code和Codeplex下载并编译了这些库,但两者都有相同的问题。
在执行期间看似随机的时间,我会得到“SQL逻辑错误或丢失数据库”,“磁盘I / O错误”或“没有这样的表”。大多数情况下,这发生在SELECT语句上,偶尔发生在UPDATE上,而不是发生在INSERT上。有时查询会毫无问题地执行,有时同样的查询会抛出这些错误。
我已经在市场上有一个使用Sqlite的现有应用程序,运行没有问题;大部分代码以及Community.CsharpSqlite DLL都是从该项目中复制的。
数据库是在Sqlit Administrator中创建的,并作为资源添加到项目中,与现有的正常运行应用程序相同。在调试模式下失败的查询在Sqlite Administrator中正常运行。我也从头开始重新创建空白数据库,因为它有可能是腐败,但是随机错误相同。
我搜索了解决方案,但最终还是继续使用相同的论坛帖子。我已经运行PRAGMA journal_mode = OFF
,验证了compilation symbols,tweaked the FileStream.HandleTracker,还知道此时还有什么。
我怀疑可能是我使用后台线程来填充UI,但不仅现有应用程序正常运行线程,当我将代码移出后台线程并进入UI线程时,错误仍然存在发生。
我很确定问题出在数据库文件本身,但我最终还是知道还有什么要找。