1

Sqlite を使用して WP7 用のデータベース駆動型アプリを作成しています。Google CodeCodeplexからライブラリをダウンロードしてコンパイルしましたが、どちらにも同じ問題があります。

実行中の一見ランダムなタイミングで、「SQL ロジック エラーまたはデータベースが見つかりません」、「ディスク I/O エラー」、または「そのようなテーブルはありません」というメッセージが表示されます。ほとんどの場合、これは SELECT ステートメントで発生し、UPDATE で発生することもありますが、INSERT では発生しません。クエリが問題なく実行される場合もあれば、同じクエリがこれらのエラーをスローする場合もあります。

問題なく動作する Sqlite を使用した既存のアプリが既に市場に出回っています。ほとんどのコードと Community.CsharpSqlite DLL は、そのプロジェクトからコピーされました。

データベースはSqlit アドミニストレーターで作成され、既存の機能しているアプリと同じようにリソースとしてプロジェクトに追加されました。デバッグ モードで失敗したクエリは、Sqlite アドミニストレーターで正常に実行されます。また、空のデータベースが破損している可能性があるため、空のデータベースを最初から再作成しましたが、同じランダムエラーが発生しました。

解決策を探しましたが、最終的には同じフォーラム スレッドにたどり着きます。私は を実行し、コンパイル シンボルPRAGMA journal_mode = OFFを検証し、 FileStream.HandleTracker を微調整しましたが、この時点で他に何があるかはわかりません。

UI を設定するためにバックグラウンド スレッドを使用している可能性があるのではないかと疑っていましたが、既存のアプリがスレッドで正常に動作しているだけでなく、コードをバックグラウンド スレッドから UI スレッドに移動したときにもエラーが発生しました。

問題はデータベース ファイル自体にあると確信していますが、他に何を探すべきかについては頭が痛いところです。

4

0 に答える 0