1

我正在使用 Sqlite 为 WP7 创建一个数据库驱动的应用程序。我已经从Google CodeCodeplex下载并编译了库,但两者都有相同的问题。

在执行过程中看似随机的时间,我会收到“SQL 逻辑错误或缺少数据库”、“磁盘 I/O 错误”或“没有这样的表”。大多数情况下,这发生在 SELECT 语句上,偶尔发生在 UPDATE 上,较少发生在 INSERT 上。有时查询执行没有问题,而有时相同的查询会抛出这些错误。

我已经在市场上有一个使用 Sqlite 的现有应用程序,它运行没有问题;大多数代码以及 Community.CsharpSqlite DLL 都是从该项目中复制的。

该数据库是在Sqlit Administrator中创建的,并作为资源添加到项目中,与现有的正常运行的应用程序相同。在调试模式下失败的查询在 Sqlite Administrator 中运行良好。我还从头开始重新创建了空白数据库,因为它可能已损坏,但同样的随机错误。

我已经搜索了解决方案,但最终还是会继续访问相同的论坛主题。我已经运行PRAGMA journal_mode = OFF,验证了编译符号调整了 FileStream.HandleTracker,谁知道此时还有什么。

我怀疑这可能是我使用后台线程来填充 UI,但不仅现有应用程序与线程一起工作正常,当我将代码移出后台线程并进入 UI 线程时,错误仍然发生。

我相当确定问题出在数据库文件本身,但我不知道还要寻找什么。

4

0 回答 0