jdbc odbc ブリッジが使用できなくなったため (この質問/回答を参照)、データベースの読み取りに最適なUCanAccessを試しましたが、Windows 10 では、書き込み試行時にエラーがスローされます: ( [CONCURRENT_PROCESS_ACCESS] - File marked as read only. Notice that only one process (one VM) for time can access in writing mode.
)。
同じコードは、Windows 8.1 と Windows 7 で UCanAccess ドライバーを使用して完全に読み取りと書き込みを行います。
Windows 10 システムを持っていないため、現在いじることができません。テストは、単一の Windows 10 インストールでパワー ユーザーによって実行されました。問題の mdb ファイルには、ユーザーが完全にアクセスできました。mdb ファイルのいくつかのパスの場所をテストしましたが ( c:\ProgramData
、Downloads
)、同じ結果でした: 読み取りは正常に行われ、書き込みは失敗しました。
Windows 10 ユーザーがさまざまなディレクトリでこれを自分でテストし、アクセス許可を操作する可能性がある場合、それは素晴らしいことです。
これは、私が使用している mdb ファイルへのリンクです。これはテストプログラムへのリンクです(exeとして)。ソース コードへのリンクは次のとおりです。
テスト プロセスは、mdb ファイルを配置し、パスのパラメーターを使用してテスト プログラムを実行することです。したがって、Windows コマンド プロンプトでは、次のようになります。
TestDbAccess c:\my\dir
c:\my\dir
mdb ファイルを置く場所はどこですか。
更新: VBox で仮想化して実行するのではなく、実際のハードウェアで実行することが望ましいという元の質問に含める必要がありました。
UPDATE2: FALSE ALARM: 問題の mdb ファイルは、ファイルのバイト 20 に基づいて、実際には"Access 97" レベルでした。問題は、mdb ファイルを作成するタスクを持つコンポーネントが、何らかの方法でそれを「Access 2000」として作成したり、「Access 97」として作成したりすることでした。それがどのように起こったのかはまだ謎のままですが、基盤となる OS のバージョンには依存していないようです。CONCURRENT_PROCESS_ACCESS エラーに遭遇した人への私のアドバイス:信じてください!