64ビットOSでのMDBデータアクセスについて
質問
2011年11月7日月曜日 23:51
ここで取り扱う内容ではないかもしれませんが、他に適切な場所がみあたらないので
質問させていただきます。
現在、vs2010pro(vb.netを使用)で開発を行っています。
データベースにはMDBを用いているのですが、気になることがあります。
それは64bit版windowsにおけるJet4.0の所在です。
MSのサイトによれば、「64 ビット版の Windows オペレーティング システムでは、
Msjet40.dll ファイルは Windows\SysWOW64 フォルダにあります。」
(http://support.microsoft.com/kb/239114/ja)
とあり、実際に私の開発用PC(Win7Pro64bit)でも問題なく実行できているのですが・・・
このDLLはAccess(32bit版)をインストールしていなくても最初から存在しているのでしょうか?
私のPCはOffice2010Pro(32bit版)をインストール済みなので判断できなくなりました。
(他にAccessが入ってない64bit版WindowsのPCはありません。)
※ファイルの日付は2009/7/14でありofficeを入れた日(今年の5月)より前なので最初から存在したかもしれませんが、
日付だけでは断言できないと考えました。
また、最初から存在するとすれば接続文字列のProviderをMicrosoft.Jet.OLEDB.4.0とし、
x86でコンパイルしておけば、(未来のWindowsを除いて)どのような環境でも動くと考えてよいのでしょうか?
よろしくおねがいします。
すべての返信 (2)
2011年11月8日火曜日 0:14 ✅回答済み
msjet40.dll は Windows 7 であれば、x86/x64 共に付属していると思います。
しかし、JET エンジンは既に収束していくシステムで、すでに MDAC による再頒布も終了しているようなものです。SQL Server や ACE 等に乗り換えることも考慮されたほうがよいのではないかと思います。
- Microsoft Access データベース エンジン 2010 再頒布可能コンポーネント
http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=c06b8369-60dd-4b64-a44b-84b371ede16d - MDAC 2.6 以降には Jet または Desktop ODBC Driver が含まれない
http://support.microsoft.com/kb/271908/ja
前者には、ACE は JET の機能を全部備えていないので、JET の後継としては SQL Server を使えとなっていますね。
2011年11月9日水曜日 1:53
K. Takaoka様、お返事ありがとうございます。
私もさらに調べてみましたが、このサイトを見たところ・・・
http://msdn.microsoft.com/ja-jp/data/gg607262
「Jet 4.0 エンジンや Jet 用の ODBC ドライバーなどは Windows OS 同梱で提供しています。
そのため、インストールは不要です。ただし、64 ビット版は提供していません。
64 ビット OS では、WOW64 でアプリケーションを動作させることで 32 ビット版を利用できます。」
・・・と、いうことなので、x86でコンパイルすれば問題なさそうですね。
>しかし、JET エンジンは既に収束していくシステムで、すでに MDAC による再頒布も終了しているようなものです。
>SQL Server や ACE 等に乗り換えることも考慮されたほうがよいのではないかと思います。
できればそうしたいところですが、ユーザーのPC環境が多種多様であるため、
確実に動く方法を取りたいのです。
(今からSQL Serverに変更するのは難しいので)
何はともあれ一先ず安心できました。
ありがとうございました。