2016-04-27 9 views
0

私は作業中の「メモ」アプリケーションを持っており、ユーザーのメモはすべてsqlite.dbファイルに保存されています。ただし、このデータベースファイルをユーザーのOneDriveクラウドアカウントに同期させて、ノートがクラウド内で最新のものになるようにしたいと思います。最終的には、このアプリをWindows Phoneと互換性があるようにして、OneDriveアカウントを介してPCと電話のバージョンを同期させていきます。OneDriveフォルダにあるSQLite DBでクエリを実行することはできますか?

したがって、ユーザーのOneDriveアカウントにあるsqlite.dbファイルに対してクエリを実行できるかどうかを知りたい場合、または1か所で変更があるたびにファイル全体を再同期する必要がある?

私は個々のレコードが変更または削除されたことを知ってそれに応じて変更する必要があるので、後者のアプローチが問題になると思います。 :]

答えて

0

ユーザーのOneDriveアカウントにあるsqlite.dbファイルに対してクエリを実行することができますか?

SQLiteは、SQL ServerやMySQLなどのクライアント/サーバーSQLデータベースエンジンと直接比較できません。個々のアプリケーションとデバイスにローカルデータストレージを提供するよう努めています。したがって、ユーザーのOneDriveアカウントに直接存在するsqlite.dbファイルに対してクエリを実行することはできません。ユーザーのOneDriveクラウドアカウントで作業する場合は、OneDrive's App Folderを利用できます。しかし、この方法を使用する場合、データを同期させるためにSQLite DBファイルをダウンロードしてアップロードしなければなりません。ネットワーク上の問題や競合に対処するには、これが複雑になります。

ご使用のシナリオに応じて、Offline Data Sync in Azure Mobile Appsを使用することをおすすめします。

アプリがオフラインモードでも、ユーザーはデータを作成して変更することができますが、これはローカルストアに保存されます。アプリがオンラインに戻ると、ローカルの変更をAzure Mobile Appバックエンドと同期させることができます。この機能には、クライアントとバックエンドの両方で同じレコードが変更された場合の競合の検出もサポートされています。競合は、サーバーまたはクライアントのいずれかで処理できます。

オフライン同期は多くの利点があります。

  • は、デバイス
  • 上でローカルサーバーのデータをキャッシュすることで、アプリの応答性を向上させ、ネットワークの問題が
  • がある場合、エンドユーザーの許可便利残る堅牢なアプリケーションを作成します。ネットワークアクセスがなくてもデータを作成したり変更したりすることができます。
  • 2台のデバイスで同じレコードが変更された場合、複数のデバイス間でデータを同期して競合を検出します。
  • 高遅延または計量ネットワーク

  • リミットネットワークの使用は、より多くの情報については、Offline Data Sync in Azure Mobile AppsEnable offline sync for your Windows app、およびGitHubの中Todo offline sampleを参照してください。

  • 関連する問題