2

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:\ProgramDataDownloads)、同じ結果でした: 読み取りは正常に行われ、書き込みは失敗しました。

Windows 10 ユーザーがさまざまなディレクトリでこれを自分でテストし、アクセス許可を操作する可能性がある場合、それは素晴らしいことです。

これは、私が使用している mdb ファイルへのリンクです。これはテストプログラムへのリンクです(exeとして)ソース コードへのリンクは次のとおりです。

テスト プロセスは、mdb ファイルを配置し、パスのパラメーターを使用してテスト プログラムを実行することです。したがって、Windows コマンド プロンプトでは、次のようになります。

TestDbAccess c:\my\dir

c:\my\dirmdb ファイルを置く場所はどこですか。

更新: VBox で仮想化して実行するのではなく、実際のハードウェアで実行することが望ましいという元の質問に含める必要がありました。

UPDATE2: FALSE ALARM: 問題の mdb ファイルは、ファイルのバイト 20 に基づいて、実際には"Access 97" レベルでした。問題は、mdb ファイルを作成するタスクを持つコンポーネントが、何らかの方法でそれを「Access 2000」として作成したり、「Access 97」として作成したりすることでした。それがどのように起こったのかはまだ謎のままですが、基盤となる OS のバージョンには依存していないようです。CONCURRENT_PROCESS_ACCESS エラーに遭遇した人への私のアドバイス:信じてください!

4

1 に答える 1

3

UCanAccess と Jackcess は Windows 10自体に問題はありません。UCanAccess を使用して、この SQL ステートメントを実行しました ...

UPDATE CW_EPG_CAPTURES SET title = 'Win10 test'

... VirtualBox 仮想マシン上のサンプル データベース (Access 2000 形式の cw_record.mdb) に対して

  • Windows 10 Pro テクニカル プレビュー、ビルド 10041 (64 ビット)
  • JDK 7u45 (64 ビット)
  • NetBeans 7.4
  • UCanAccess 2.0.9.4

そして、問題なく更新を正常に実行しました。

.mdb ファイルは、質問のリンクから直接ダウンロードされ、

C:\ユーザー\パブリック

アップデート:

結局のところ、問題は Windows 10 とは何の関係もありませんでした。問題は、Access 97 ファイルが時々テストに使用されていたことにありました。Jackcess と UCanAccess は、Access 97 ファイルの読み取り専用サポートを提供するだけです。

于 2015-04-22T12:32:17.520 に答える