2011-07-02 4 views
1

私は、競合ビューで複数の文書をお読みください。 この投稿は、あなたがマルチユーザー環境で使用することはできませんことを言う: http://www.pluralsight-training.net/community/blogs/jimw/archive/2007/02/18/46141.aspxSQL CEマルチユーザですか?

ウィキペディアは言う: SQL CEのランタイムはの.sdfファイルへの同時マルチユーザアクセスを仲介します。

どちらが正しいですか?

私のシナリオは以下の通りです: 私はWPFでデータベースアプリケーションを書いていますが、私はLINQ to SQLを使いたいと思います。私はすでにSQLデータベースにインポートする必要のあるデータを含むMS Accessデータベースを持っています。

データベースエンジンとしてAccessデータベース(MDB)を使用しても問題ありませんが、LINQ to SQLはAccessデータベースでは動作しません(私は正しいのですか?)ので、SQL CE

2人以上のユーザーがネットワーク経由でアプリケーションを開き、そのアプリケーションで作業する可能性があります。だから私は、2人以上のユーザーがデータベースを開き、それ(違うレコード)に書き込むとクラッシュしないようにする方法が必要です。このシナリオに最適なオプションは何ですか?

答えて

5

SQL Server Compactでは、複数の接続がサポートされていますが、同じOSセッションからのみ、ネットワーク経由ではありません。したがって、同じマシン上で実行されているサービスとデスクトップアプリケーションおよびWebアプリケーションは、すべて同時にデータベースにアクセスできます。

+0

ありがとう。これは、ネットワーク上で実行できるアプリケーションがあり、2人(またはそれ以上)のユーザーが同じデータベースにアクセスできる場合、クラッシュすることを意味します。私の場合、各人は同時に1つのレコードに書き込むことができます。 – mans

+0

クラッシュすることはありません。単純には不可能です(エラーメッセージが表示されます) – ErikEJ

0

他のユーザーがデータを検索したり編集したりするときに問題が発生します。あなたは 'キャッシュ'を試すことができます。

1: 
    try 
     Me.xxxTableAdapter.FillBy (Me.xxxiDataSet.xxx, xxxToolStripTextBox.Text) 
    Catch ex As System.Exception 
     GoTo 1// at the time when the database is in use will be the exception and retry the program will perform the operation without a message. 
    end Try 

解決策はプロフェッショナルではない可能性がありますが、機能します。ソリューションは、私たちのプログラムがすでにSQL Compact 3.5上に作成され、他のユーザー(LAN)とリソースを共有している場合に特に便利です。

ありがとう

関連する問題