Установка 32-битных и 64-битных драйверов Informix на одном компьютере

В настоящее время пытаюсь настроить среду разработки, которая может обрабатывать как 32-разрядные, так и 64-разрядные драйверы ODBC Informix.

I Мне не удалось найти какой-либо путеводитель или пройтись по сети, однако я нашел кусочки, которые могли привести к решению. Мне просто нужен еще один совет, чтобы убедиться, что я нахожусь на правильном пути.

Версии драйверов

Версия 3.70.TC3, Windows (32 бит)

Версия 3.70.FC3, Windows x64

Источник

Кажется, я не могу найти версии 3.70.TC3 или 3.70.FC3 , но я нашел 3.70.TC7 и 3.70.FC7 непосредственно с веб-сайта IBM, которые, как я полагаю, представляют собой лишь слегка обновленные версии.

Установка драйверов 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 \ , а не на путь C: \ Program Files (x86) \ , тем самым связывая 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 драйверы.

Проще говоря, 32-битное приложение, которое подключается к 64-битным драйверам ODBC, будет автоматически перенаправлено на 32-битные драйверы на основе записей реестра, тогда как 64-битное приложение не нуждается в таком перенаправлении.

Если 32-разрядное приложение пытается подключиться к допустимым данным пользователя источник для 64-битного драйвера ODBC, соединение будет успешным, если Установлена ​​32-битная версия драйвера. В противном случае подключение завершится ошибкой "несоответствие архитектуры". Например, Драйвер Microsoft SQL Server ODBC устанавливает 64-разрядную библиотеку. (% WINDIR% \ System32 \ sqlsrv32.dll) и 32-битную библиотеку (% WINDIR% \ SysWOW64 \ sqlsrv32.dll) на 64-битных платформах Windows.

В случае Informix драйвер для каждой архитектуры ДОЛЖЕН быть установлен отдельно.

Вопросы

Какова важность ODBC.INI , и могу ли я просто изменить ключ Driver32 на Driver64 или, может быть, оба вместе?

При выполнении 32-битного ODBC Администратор и открытие источника данных. Я могу изменить настройки подключения, однако при выполнении 64-разрядной версии я получаю следующую ошибку.

64-bit ODBC Administrator - Error 193

Как я могу изменить текущего администратора ODBC системы на 64-разрядную версию, чтобы избежать этой ошибки?

1
задан 26 July 2017 в 22:59
1 ответ

Проблема заключалась в том, что я изначально установил версию 3.50. Эта версия больше не поддерживается и также не имеет 64-битного аналога.

Решением было установить последние версии драйверов 4.1.

0
ответ дан 4 December 2019 в 04:47

Теги

Похожие вопросы