私たちのアプリケーションは Access データベース (.mdb) を構築し、Shell
このデータベースへの読み取り/書き込みアクセスを必要とするコマンドで別のアプリケーションを起動します。問題は、一部のシステムでは、アプリケーションが不規則にデータベースの排他ロックを保持しているように見え、他のアプリケーションがデータベースにアクセスできなくなることです。最初のアプリケーションを閉じた後にのみ、他のアプリケーションを続行できます。
発生する特定のエラーはエラー 3028 です。これは、実際に使用している DAO 3.51 (Access '97) に固有のようです。一部のシステムが影響を受ける (そして一貫してではない) 理由と、影響を受けないシステムがある理由が理解できません。タイミングの問題ではないかと思いSleep
、データベースの構築から他のアプリケーションの起動までの期間に構築しましたが、それは役に立ちません。
何が起こっている?
編集:別のファイルにデータベースを作成してからコピーすることで、回避策を作成しました。これで、2 番目のプログラムは常にアクセスできるようになり、残りのロックの問題は最初のプログラムで表面化します。ユーザーがこれをテストできるようになったら、後でフォローアップします。