現在、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ドライバーのインストール
ドライバは次の場所にインストールされます(レジストリエントリに基づく)
レジストリエントリ
私が見ることができるものから、ドライバーのレジストリエントリは次の場所にあります。
これは基本的に、すべてのデータソースとそれらの接続の詳細を一覧表示します。両方の場所には、それぞれのドライバーの場所を指す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ビットバージョンを実行すると、次のエラーが発生します。
このエラーを回避するために、システムの現在のODBC Administratorを64ビットバージョンに変更するにはどうすればよいですか?
問題は、最初に3.50バージョンをインストールしたことでした。このバージョンはサポートされなくなり、64ビット版もありません。
解決策は、最新の4.1ドライバーをインストールすることでした。