1

ファイルシステム ('C:/...etc...') 内の *.sdf への通常の DBConnection で Sql CE を使用する Office アドインがあります。Sql CE 拡張 Office アドインを含むアプリケーションの 2 つのコピーを開始すると (ユーザーが誤って実行する可能性があることをテストします)、Sql CE データベースが破損し、Office アドインがそのデータにアクセスできなくなります。

一見明らかな問題を回避するための基本的な方法が欠けているようです。Sql CE は行をロックしないため、同じ *.sdf への複数の書き込みによってある種の破損が発生する可能性があることは、今では誰もが知っています。

おそらく答えは「そうしないでください」です。また、Sql CE はこのケースを処理するようには設計されていません。しかし、確かに Sql CE のほとんどのアプリケーションには、誤って複数のプロセスを開始し、同じ *.sdf に書き込もうとする同様のリスクがありますか?

Sql CE の小さいサイズ、自由度、およびアドインへの簡単な統合が気に入っています。ただし、Sql Server Express と 2008 の比較は次のとおりです

4

1 に答える 1

0

ユースケースで2つの実行中のアプリケーションが実際には必要ないことを正しく理解している場合、ユーザーが誤ってそうしている場合は、エラーをキャッチする必要があります。

その場合、アドインがすでに実行されているかどうかを確認するだけで十分です(言語/フレームワークがサポートしているものは何でも...)。別のインスタンスがある場合は、アドインをインスタンス化しないでください。

于 2009-09-29T14:36:16.383 に答える