Microsoft Accessデータベースで作業している人は、どうすれば私のプログラムをチェックインできますか? 1人のユーザが自分のプログラム(C#)でデータベース上で動作することができるので、アクセスが複数のユーザにとってあまり良くないので、これをチェックする方法が必要です。誰かがAccessデータベースに接続しているかどうかを確認する方法
ありがとう
Microsoft Accessデータベースで作業している人は、どうすれば私のプログラムをチェックインできますか? 1人のユーザが自分のプログラム(C#)でデータベース上で動作することができるので、アクセスが複数のユーザにとってあまり良くないので、これをチェックする方法が必要です。誰かがAccessデータベースに接続しているかどうかを確認する方法
ありがとう
MS-Accessの排他モードで読んでください。
このアドバイスのおかげで、私はプログラムの接続文字列を排他モードでデータベースを開くように変更しましたが、変更はありません。私が排他モードでプログラムを使用してdbを開くと、dbがすでに開いているというエラーを表示せずに、どのコンピュータからでもアクセスできます。 私は以下の接続文字列を使用しました: プロバイダ= Microsoft.Jet.OLEDB.4.0;データソース=#SERVERPATH#; OLE DBサービス= -4;モード= \ "排他共有\"; Jet OLEDB:データベースロックモード= 1; Jet OLEDB:データベースパスワード= passwort1; –
数値定数を使用してみてください。Mode = 12 – Tim
OK:
マルチユーザーシナリオでのアクセスは用途によって異なります。複数の同時読み取りは、複数の同時挿入よりも実行できます。挿入されたすべてのレコードはテーブルの "caboose"に追加されるため、そのページには大きな競合が生じることがあります。また、任意の共有ファイルのバイト範囲ロックアーキテクチャ(真正のクライアント/サーバーエンジンとは異なる)の場合と同様に、ネットワーク接続が不安定である場合、またはクライアントPCにヒザックアップがある場合、サーバー上のデータは不適切な瞬間にトランスポート層またはクライアントの問題が発生した場合に破損します。単一のユーザーであっても、これらの問題があります。マルチは悪化する。 – Tim
私は物事を一度簡単にしました。私はそれを後悔した;) –
誰かがデータベースを開いているかどうかについて決定的な何かをLDBファイル(または1つの欠如)が存在すると仮定してはいけません。つまり、Jet/ACEが接続を終了した後もファイルシステムに残る可能性があるため、誰かがデータベースを使用しているとは限りません(ただし、これは格納先フォルダに対するDELETE権限を持つJet/ACEのデフォルトの動作ではありません) 。 –
データベースファイルを開いたときにAccessでロック(* .ldb)ファイルが作成されませんか? * .ldbが存在するかどうかを確認できます。 – froeschli
これは私がしていないものです – Will