2009-06-02 8 views
1

Imは、2つの異なるアプリケーションからWindows Mobileデバイス上のSql CE 2005データベースにアクセスしようとしています。私はそれが動作するはずですオンライン見つかった情報からSql ce 3.0データベースマルチユーザ

が、私は2番目の接続を開いたとき、私は、ファイル共有違反のエラーを取得する

"There is a file sharing violation. A different process might be using the file. [ \\\Program Files\xx\DB.sdf ]" 

私が間違ってやっている上の任意のアイデア?

+0

参照:http://stackoverflow.com/questions/265691/is-it-safe-to-open-the-same-sdf-database-file-from-two-winmo-different-applicati –

答えて

0

このプロセスは、このsdfファイルにアクセスするために複数のスレッドを使用していますか、または1つのスレッドのみです。他の "PROCESS"がファイルにアクセスしていると言うと、それは何ですか?それはVSか何か他のものですか?リモートプロセスビューアを使用して、このSDFファイルを使用しているデバイスのプロセスを確認できます。どのハンドルがどのデバイスのプロセスであるかを別々に見ることができれば、それは素晴らしいことです。それ以外の場合でも、デスクトップ上のいくつかのプロセスを終了した後、sdfファイルを削除(または移動/名前変更)してください。それは問題のプロセスが何であるかを教えてくれるかもしれません。

+0

いいえ2つの別々のアプリケーション。どちらも同じデータベースを開こうとしています。 1つは接続を開き、2番目の接続を開こうとするとファイル共有違反エラーが発生します。 この接続文字列を使用して接続しています。 conn =新しいSqlCeConnection( "データソース= \\\ Program Files \ xx \ DB.sdf"); – Marcom

3

SQL Compact does support multiple connections to the database,even back with version 3.0。最初のプロセスはどのようにデータベースをオープンしていますか?たとえば、3.0および3.1のモバイルクエリアナライザは、データベースを排他的に開き、他のプロセスから効果的にロックしました。

+0

両方のアプリケーションが同じ接続文字列を使用します。 SqlCeConnection conn =新しいSqlCeConnection( "データソース= \\\ Program Files \ xx \ DB.sdf"); conn.Open(); db withtout probsを開く最初のアプリケーション。 2番目はエラーをスローします。 – Marcom

+0

特定のケースでは、SQL CEが複数の接続をサポートしているかどうかは関係ありません。それでも共有違反エラーが発生する可能性があります。 たとえば、SDFファイルがユーザーのローカルマシン上にある場合、デスクトップ上で複数のプロセス/接続を行うことができます。そのSDFファイルをネットワーク共有に置きます。それは別の話です。一度にアクセスできるプロセスは1つだけです。 モバイルデバイスで開くときと同じ状況になるのだろうかと思います。 – CBono

+2

ネットワーク共有(http://www.pluralsight.com/community/blogs/jimw/archive/2007/02/19/46151.aspx)ではうまく動作しないことはよく書かれています。デバイス上で正常に動作します - 同じデータベースファイルを使用して複数のプロセスを必要とするいくつかのソリューションがあります。 – ctacke

0

SQLCE ...

"Data Source=Program Files\xx\DB.sdf"を使用して、単一のユーザー

が正常にデータベースを開くと

"Data Source=\\\Program Files\xx\DB.sdf"が明らかにデータベースを開きます.....接続文字列でした4 Community Technology Previewが公開されました。これは、同じプロセスの複数のスレッドからのマルチユーザーシナリオとアクセスをサポートします。

SQlCE 3.5と同じ問題はありません。 256の接続でうまく動作します。

0

参照:SQL Server Compactのでhttp://msdn.microsoft.com/en-us/library/ms171750.aspx

//、あなたは、異なるデータセットにアクセスしたり変更されている複数の同時アプリケーションを実行することができます。

多くの人々は私が考える誤解を受ける理由は、彼らは複数の接続のSQL Server CEのdoesntのサポートとデータの同じセットを変更するsenariosのためにそれを使用するSQL CEのサポート複数の接続以来です。

希望すると便利です。