Мое приложение C ++ не может подключиться к серверу Informix DB - PullRequest
1 голос
/ 03 ноября 2010

У меня есть приложение (не могу предоставить код, так как оно очень длинное), которое использует 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 ]

0 голосов
/ 04 ноября 2010

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

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

0 голосов
/ 03 ноября 2010

Для запуска программ, использующих 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 в комплект программного обеспечения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...