3

x64 プラットフォームでビルドする必要があるアプリケーションがあります。.mdbファイルにアクセスする必要があります。アクセスするとは、つまり、データベースを挿入、削除、または更新することです。Jet OLE db および ODBC ドライバーの使用に問題があります。OLE db では、「Jet Oledb が登録されていません」と表示されます。ドライバーとアプリケーションの間で ODBC プラットフォームの不一致があります。これらの操作は X86 プラットフォームで実行できます。しかし、私のアプリケーションでは、x64 プラットフォームでプロジェクトをビルドするように求められました。誰でも解決策を教えてもらえますか。注意: x64 アプリおよびデータベースとの通信に 3 番目のアプリケーションを使用しないでください。

事前の対応に感謝します。

4

1 に答える 1

4

ACEと呼ばれるMicrosoftの最新のドライバーを使用する必要があります
。ここにダウンロードビットがあります。

目的のターゲットマシンに適したセット(x64またはx86)をダウンロードするように注意してください。また、接続文字列はこれらのドライバーを使用する必要があるため、おそらく次のような接続文字列が必要です。

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=yourPathToTheMDBFile.mdb;
Persist Security Info=False;

別の方法として、x86プラットフォーム用のアプリケーションを構築することもできます。64ビットコードを直接操作しない場合は、64ビットオペレーティングシステムと同じように機能します。古いJET.OleDb.4.0を使用できるため、このソリューションが推奨されます。

64/32ビットオペレーティングシステム、アプリケーションの構築に使用されるプラットフォーム、および32/64ビットドライバーの問題について簡単に説明します。

  • AnyCPUプラットフォーム用のアプリケーションをビルドします -コードは32/64ビットシステムで正常に機能します。JITコンパイラによって生成されるコードは、ゲストOSと同じビット数になります。ただし、64ビットアプリやその逆で32ビットドライバーを使用することはできませんでした。JET.OleDB.4.0は32ビットのみです。AnyCPU用にコンパイルして64ビットで実行すると、ゲームは終了します。64ビットドライバーが必要です。
  • x86プラットフォーム用のアプリケーションをビルドします-コードは32/64ビットシステムで正常に機能し、32ビットドライバーを使用できます。もちろん、JITコンパイラーによって発行されるコードは32ビットであるため、64ビットシステムで64ビットドライバーを使用することはできません。
于 2012-12-14T13:44:08.897 に答える