web-dev-qa-db-ja.com

同じマシンに32ビットと64ビットのInformixドライバーをインストールする

現在、32ビットと64ビットの両方を処理できる開発環境をセットアップしようとしていますODBC Informixドライバー。

私は、あらゆる種類のガイドを見つけたり、オンラインでウォークスルーしたりすることに失敗しましたが、解決策につながる可能性のある断片を見つけました。私が正しい道を進んでいることを確認するために、もう少しアドバイスが欲しいのですが。

ドライバーバージョン

バージョン3.70.TC3、Windows(32ビット)

バージョン3.70.FC3、Windows x64

ソース

バージョン3.70.TC3または3.70.FC3が見つからないようですが、 .70。 TC7 および .70.FC7 IBM Webサイトから直接、これはわずかに更新されたバージョンであると思います。

Informixドライバーのインストール

ドライバは次の場所にインストールされます(レジストリエントリに基づく)

  • 32ビット:C:\ Program Files(x86)\ IBM\Informix\Client-SDK \
  • 64ビット:C:\ Program Files\IBM\Informix\Client-SDK \

レジストリエントリ

私が見ることができるものから、ドライバーのレジストリエントリは次の場所にあります。

  • 32ビット:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBC.INI
  • 64ビット:HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI

これは基本的に、すべてのデータソースとそれらの接続の詳細を一覧表示します。両方の場所には、それぞれのドライバーの場所を指すDriverキーを除いて、同じ名前と同じキー/値のペアを持つ同じ数のデータソースがあります。 _C:\Program Files\_またはC:\Program Files (x86)\

ODBC管理者

32ビットODBC管理者は%systemdrive%/ Windows /SysWoW64/ odbcad32.exeにあります

直感に反して、64ビットODBC管理者は%systemdrive%/ Windows /System32/ odbcad32.exeにあります

ソース

ODBC.INI

_ODBC.INI_ファイルは_C:\Windows\_にあり、そのファイルの内容には、ODBC Administratorに表示されるものと同じデータソースがリストされ、これらの各データソースの32ビットドライバー; _Driver32=C:\Program Files\IBM\Informix\Client-SDK\bin\iclit09b.dll_。

ここで興味深いのは、キー_Driver32_が使用されているにもかかわらず、値がC:\Program Files (x86)\パスではなく_C:\Program Files\_パスを指しているため、_Driver32_がに関連付けられていることです。 64ビットドライバー。

この不規則性を説明するために、次の ページ を見つけました。

WOW64レジストリリダイレクタは、レジストリの特定の部分に対して行われた呼び出しをインターセプトし、それらをレジストリの別の部分にリダイレクトします。レジストリのリダイレクトは、HKEY_LOCAL_MACHINE\SOFTWAREキーに影響します。 32ビットアプリケーションによってこのキーに対して行われたレジストリ呼び出しは、HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Nodeにリダイレクトされます。したがって、たとえば、32ビットアプリケーションが呼び出す場合SQLDataSourcesの場合、結果のレジストリ呼び出しはHKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INIからHKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBC.INIにリダイレクトされ、返されるシステムデータソースは32ビットのシステムデータソースのみですODBCドライバー。

簡単に言えば、64ビットODBCドライバーに接続する32ビットアプリケーションは、レジストリエントリに基づいて自動的に32ビットドライバーにリダイレクトされますが、64ビットアプリケーションにはそのようなリダイレクトはありません。

32ビットアプリケーションが64ビットODBCドライバーの有効なユーザーデータソースに接続しようとすると、32ビットバージョンのドライバーがインストールされていれば接続は成功します。それ以外の場合。接続は「アーキテクチャの不一致」エラーで失敗します。たとえば、MicrosoftのSQL Server ODBCドライバは両方をインストールします 64ビットWindowsプラットフォーム上の64ビットライブラリ(%WINDIR%\ System32\sqlsrv32.dll)および32ビットライブラリ(%WINDIR%\ SysWOW64\sqlsrv32.dll)。

Informixの場合、各アーキテクチャーのドライバーを個別にインストールする必要があります。

質問

_ODBC.INI_ファイルの重要性は何ですか。_Driver32_キーを_Driver64_に変更するだけですか、それとも両方を組み合わせて使用​​できますか?

32ビットODBC Administratorを実行してデータソースを開くと、接続設定を変更できますが、64ビットバージョンを実行すると、次のエラーが発生します。

64-bit ODBC Administrator - Error 193

このエラーを回避するために、システムの現在のODBC Administratorを64ビットバージョンに変更するにはどうすればよいですか?

1
MPaul

問題は、最初に3.50バージョンをインストールしたことでした。このバージョンはサポートされなくなり、64ビット版もありません。

解決策は、最新の4.1ドライバーをインストールすることでした。

0
MPaul