2

次のアプローチを使用して、assetsフォルダーに格納されているいくつかの部分から作成されたSQLiteデータベースファイルをAndroidアプリケーションで使用してい ます。ReignDesign-Androidアプリケーションで独自のSQLiteデータベースを使用する

組み立てプロセスが完了したら、データベースが正しくマージされたかどうかを確認したいと思います。次のアプローチが私の頭に浮かびました。

  • MD5ハッシュ比較
  • テーブルの存在とエントリ数の確認

どのアプローチをお勧めしますか?もっと良い方法はありますか?

ありがとう、

フィリップ

4

4 に答える 4

5

http://www.sqlite.org/pragma.html#pragma_integrity_check

于 2011-03-23T12:56:51.730 に答える
4

Api 11では、SQLiteDatabaseにはSQLiteデータベースの整合性をチェックするためのメソッドisDatabaseIntegrityOkがあります。

http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#isDatabaseIntegrityOk()

そして、ソースコードはここで入手できます:

https://github.com/android/platform_frameworks_base/blob/ics-mr1-release/core/java/android/database/sqlite/SQLiteDatabase.java#L2585

古いデバイスにバックポートするのは簡単です。

于 2012-06-19T14:24:13.797 に答える
1

開発中のアプリケーションでも同様の状況が発生しました。それを行うにはさまざまな方法があります。しかし、結局、私はデータベースの整合性を正確に、そしてどのように測定するのが最善かについて心配するのをやめ、代わりに「私のデータベースは私のアプリケーションで使用できるか」に焦点を合わせました。

したがって、基本的には、1)SQLiteデータベースを適切に開くことができるかどうか、2)データベースでクエリを実行できるかどうか、3)事前定義されたクエリの結果が期待どおりの結果を返すかどうかをテストします。

つまり、基本的には、既知のIDのレコードを含むテーブルを含めて、既知の値を提供してから、その値を読み取ってみてください。テーブル数をチェックすることは期待できません。

PRAGMA integrity_checkとはいえ、DBシステムに精通している誰かが、a)正確に何をするのか、b)手動のテーブルチェックと比較してどれほど信頼性が高く効率的かを説明してくれることを期待しています。

于 2011-03-23T16:10:40.143 に答える
0

パフォーマンスとコーディングのしやすさの両方の観点から、最初のアプローチよりも2番目のアプローチをお勧めします。

于 2011-03-23T12:40:03.440 に答える