2010-12-15 8 views
0

私たちのアプリケーションはSQLiteデータベースファイルを使ってデータを保持しています。アプリケーションは、起動時にファイル内のデータベースを開き、読み書きを行い、終了時に閉じます。複数のアプリケーションがSQLiteファイルにアクセスしていますか?

残念ながら、誰かが一度に2つのアプリを実行することを禁じることはできません。そのようなことが起こった場合、おそらく、同時にファイルから読み込みまたは書き込みを試みるアプリケーションのコピーが2つ存在することになります。私はこれがデータベースファイルではうまくいかないと思います。

ユーザーのデータ損失を防ぐために、私たちは何ができますか?アプリケーションの2番目のコピーが同時に起動されると、データベースを開くことを避けるべきですか?それとも、私たちが行うことができるより洗練された何かがありますか?

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

+1

SQLiteのは、ちょうど単一のファイルに基づいていることを考えるとよくある質問http://www.sqlite.org/faq.html#q5 –

答えて

2

sqliteを含むsaneデータベースプロバイダは、2人で同時にアクセスするとデータベースを破壊しません。並行して実行する方法がない場合、ほとんどの場合、要求がキューに入れられます。

あなたのアプリケーションがデータで行うこと、つまりあなたのアプリケーションの問題ですが、データベース自体について心配する必要はありません。

+0

をお読みください、あなたは確かにこれをすることをしています本当ですか?あるいは、DLLは、たとえ2人が一度にファイルを使用しても、すべてがうまくいくことを保証するために、ある種の黒い魔法をしていますか? – Colen

+0

私はsqliteがあなたのデータベースを壊さないと確信しています、はい。それは単なるファイルではなく、APIを介してアクセスしていることに留意し、アクセスの同期を処理します。 – Blindy

関連する問題