Мое приложение C++ не может подключиться к серверу Informix DB

У меня есть приложение (не могу предоставить код, так как оно очень длинное), которое использует unixODBC, Также я установил isql, Кажется, все настроено правильно - драйверы, серверы и т. Д., Используя isqlПодключаюсь к БД Informix без проблем. Но мое приложение не может подключиться, даже если я использую те же настройки. Возвращенная ошибка:

IM00 [unixODBC][Driver Manager]Data source name not found, and no default driver specified

Итак, вот "интересная" часть - я скопировал odbc.ini подать в ~/.odbc.ini а также /etc/odbc.ini и затем все начало работать почти нормально ("почти", поскольку приложение могло подключаться к одному DSN, но не к другому, но это все еще что-то).

Также:

[root@xxx xxx]# odbcinst -j
unixODBC 2.3.0
DRIVERS............: /usr/local/etc/odbcinst.ini
SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini
FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources
USER DATA SOURCES..: /usr/local/etc/odbc.ini
SQLULEN Size.......: 4
SQLLEN Size........: 4
SQLSETPOSIROW Size.: 2
[root@xxx xxx]$ echo $ODBCINI
/usr/local/etc/odbc.ini
[root@xxx xxx]$ echo $INFORMIXDIR
/usr/informix

INFORMIXDIR также правильно установлен. Ничто не указывает на ~/.odbc.ini ни /etc/odbc.ini (на самом деле, второй помог, ничего общего с ~/.odbc.ini, только что попробовал (:)

odbc.ini правильно настроены, так как isql работает отлично.

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать. Спасибо (:

2 ответа

Решение

@ Джонатан Леффлер - Да, у меня все установлено правильно, проблема была определенно где-то еще. Я отвечаю здесь, поскольку я нашел решение (фактически, мой коллега сделал). Это была очень, очень глупая вещь.. Он просто добавил /usr/local/lib в /etc/ld.so.conf и все началось нормально.....

В любом случае, действительно спасибо за вашу помощь (:

Для запуска программ, использующих ODBC для подключения к Informix, вам необходим установленный драйвер Informix ODBC (или, возможно, вместо этого драйвер IBM Common Client). Чтобы получить этот драйвер, вам необходимо установить на компьютер продукт ClientSDK или CSDK или его эквивалент во время выполнения I-Connect, а затем правильно настроить DSN. Продукт Informix SQL (известный как isql, потому что это основное имя программы) не использует и (следовательно) не устанавливает драйвер ODBC; он использует соединение ESQL/C. (Однако, если подумать, вы имеете в виду isql, поставляемый с UnixODBC, а не продукт Informix.)

ClientSDK доступен без поддержки по номинальной стоимости 0,00 долларов США. Поддержка дороже. То же самое для I-Connect. На RHS на связанной странице в разделе "Технические детали" находится ссылка на "Загрузки Informix", откуда вы можете получить CSDK.

Вы также можете взглянуть на различные новые версии Informix (Informix Dynamic Server), которые можно использовать, с некоторыми лицензионными ограничениями (внимательно прочитайте лицензию), которые включают CSDK в комплект программного обеспечения.

Другие вопросы по тегам