Translate

2012年12月7日金曜日

64bit版WindowsとODBC

 64bit版Windowsで32bitのアプリケーションを動作させようと思うと、WOW64と云う機能が用意されているため思いのほかすんなりと動作してくれます。 ただし、ODBCやActiveXなどを利用しているとやや問題が出てくるようです。
 ここではODBCを使っている場合に生じる問題に関する解決方法について説明します。

症状

 ODBCを利用しているアプリケーションで、DSNの設定を正しく行っているにもかかわらず「データ ソース名および指定された既定のドライバーが見つかりません」といったエラーメッセージが表示される。

原因

 64bit版Windows上ではODBCのドライバにも、64bitと32bitの両方が用意されているために起こります。

説明

 64bit版Windowsで32bitアプリケーションを動作させると、WOW64が自動的にアプリケーションを64bitにエミュレートして、アプリケーション側には意識させること無く動作させることができます。ただし、このときODBCやActiveXなどの外部モジュールに関しては32bit版が利用されます。
 コントロールパネルのODBCアドミニストレータでDSNを設定した場合、通常64bit版のODBCの設定が開かれます。このため、ODBCアドミニストレータでDSNを設定していても、いざアプリケーションを起動すると「データ ソース名および指定された既定のドライバーが見つかりません」といったエラーメッセージが表示されます。

対処方法

 次のファイルから32bit版のODBCアドミニストレータを起動して、DSNの設定を行います。
%windir%\syswow64\odbcad32.exe

参考資料

Microsoft - KB942976

0 件のコメント :

コメントを投稿