記事公開日
最終更新日
64ビットWindowsには、なぜ32ビットと64ビットのODBCが存在するのか?

(本記事の情報は、記事の公開日時点での情報であり、その正確性、完全性、最新性等内容を保証するものではありません。)
今回は主に、「データ」をやりとりする際に必要な「環境・設定」周辺の話をしていこうと思います。
Windows XPのサポートが2014/04/08(米国時間)に終了したことを受け、利用するWindows OS(以下、Windows)が変わった方も多いのではないでしょうか?
クライアントPCで使用するWindowsは、Windows Vistaあたりまでは、互換性が懸念されたり、64ビット版は各種ドライバーが揃っていなかったり、といったことがあり、32ビット版が多く利用されてきました。
これが、Windows7以降になると、64ビット版が利用されることがほとんどになっているように感じます(最近の製品出荷・サポート時の環境から)。
これは、
- プリインストールされているWindowsが64ビットだった
- 64ビット版のWindowsでも32ビットのアプリケーションが問題なく利用できることがわかってきた
- 各種デバイスドライバーも64ビット版が揃ってきた
- 4GB以上実装したメモリーの恩恵を受けられる
など、わざわざ32ビット版のWindowsを選択する必要が無くなったからでしょう。
ちなみに、2014/07現在数多く販売されている軽量小型のWindows8/8.1タブレットPCは、省電力型の32ビットCPU(ATOMプロセッサ:Bay Trail-T)が搭載されているので、32ビット版のWindows8/8.1が採用されています。
<2014/07/31 訂正:>
Bay Trail-Tは64ビットCPUで、軽量小型タプレットが32ビットOSを採用していたことは別の理由によるものでした。訂正し、お詫びいたします。
さて、この64ビット版Windows、64ビットアプリケーションも32ビットアプリケーションも利用できるのですが、困ったことに
- 64ビットアプリケーションが使用できるDLLは64ビット
- 32ビットアプリケーションが使用できるDLLは32ビット
と限定されています。
データベースに接続するときに使用する「ODBCドライバー」もまた然りなのです。
64ビット版のWindowsでは、
- (64ビットのプログラムが使用する)64ビット版ODBC
- (32ビットのプログラムが使用する)32ビット版ODBC
の2種類を、利用するアプリケーションにあわせて設定します。
64ビット版ODBCは、[管理ツール]-[データソース(ODBC)]で設定するのですが、32ビットのODBCを設定する場合は、面倒なことに、
<windowsインストールフォルダ>SysWOW64odbcad32.exe
を直接実行する必要があります。
(Windows 8/Windows Server 2012からは、[管理ツール]に配置されるようになりました。)</windowsインストールフォルダ>
こんな設定しづらい方法しか用意されていないので、それほど利用する機会はないのでは?と思いきや、利用するアプリケーションが32ビットの場合には、この面倒な設定をしなければなりません。
また、設定が面倒なだけでなく、データベースによっては、32ビット版と64ビット版のODBCドライバーを共存させることができないものもあったりします。
どんなときに共存させる必要があるのかというと、
- データベースに接続するアプリケーションを複数種類使用していて、64ビットアプリケーションと32ビットアプリケーションが混在している
- データベースに接続するアプリケーションが、実行モジュールは64ビットでGUIは32ビット
という場合などです。
ユニリタのETL:データ連携ツール「Waha! Transformer」の64ビット版は、実行モジュール・GUI共に64ビットで動作するので、今回のように32ビット/64ビット双方の設定を作成する必要はないのですが、実行モジュールとGUIとで異なるビット数のアプリケーションというのは結構あります。
共存できない例として最も身近なのは、Microsoft Officeにもバンドルされ(最近のバージョンではバンドルされているエディションが少なくなりましたが)、簡単に使用することのできるMicrosoft Accessがあります。※執筆時点
Accessのインストーラーを実行すると、

「32ビット版と64ビット版はどちらか一方しかインストールできません」という内容のメッセージが記載されたダイアログが表示されてしまいます。
では、Microsoft Accessの32ビット版と64ビット版のODBCドライバーを絶対に共存させることはできないか?というと、非公式ですが共存させる方法がありますので、次回までお待ちください。
ではまた。
追伸:
クライアントPCにWindows8/8.1を利用している企業は少ないと感じています。スタートメニューがないので、アプリケーションを実行するには、スタート画面を上にスライドさせて、アプリ選択画面を表示させて、2次元に広がったショートカットから目的のものを探して…と、マウスの移動量が多いです。
一方、サーバーOSであるWindows Server 2012/2012 R2は、増えてきていることを感じますね。