2012-05-02 14 views
0

私は現在、2つのデータベースの内容をマージする必要があるプロジェクトのデータベース部分に取り組んでいます。簡単なAPIメソッドがあるかどうか質問したいと思います。 私はデータベースをSQLテキストファイルにダンプするAndroid API/SDK自体です。Android DB:SQLダンプを使用して2つのデータベースをマージする

実際、このような実装に関するAPIドキュメントにはヒントが見つかりませんでした。そして私は本当にカーテンの後ろに埋まった一本の線の方法があるのか​​疑問です。

は、しかし、私はすでに起動することにより、アンドロイドのLinuxのsqlite3のシェルツールを使用して回避策を作った:私は2つの選択肢があり

String[] cmd = {"/system/bin/sh", "-c", ..., "sqlite3 ..."}; 
Runtime.getRuntime().exec(cmd); 

、a)のパイプを、それを直接出力ファイルにまたはb)書きますBufferedOutputStreamを使用してファイルを作成します。

しかし、互換性の問題が原因である可能性が最も高いのは、アプリケーション内の重要なシェルトリックを使用するのではなく、API自体の中でより便利な方法をお尋ねします。

私はまた、Androidのデータベースメソッドを使用して2つのデータベースをマージすることについての素早い手短な手がかりについてもかなり興味があります。&

ありがとうございました。

答えて

0

あなたに役立つAPIには何も組み込まれていません。 INSERTステートメントを自分で照会し、書き込むことができます。クエリの結果からXMLファイルを作成する際のブログエントリ(http://mgmblog.com/2009/02/06/export-an-android-sqlite-db-to-an-xml-file-on-the-sd-card/)があります。いくつか微調整し、あなた自身のダンプファイルを作成します。

あなたはどのようなマージを行う必要があるのか​​はわかりませんが、ORMLiteを使用するには、モデルオブジェクトのequalsメソッドをオーバーライドしてレコードを比較したり、特定の(スキーマが同じであると仮定して)、多くのSQLを書く必要はありません。

+0

ありがとうございます。マージ自体は、App(およびデータベース)更新の場合に、更新されたデータベースに潜在的なユーザーカスタマイズデータをマージすることを目的としています。 – tupperworx

関連する問題