Подключение к базе данных UCCX (Informix) через Python - PullRequest
0 голосов
/ 12 февраля 2020

Я хотел бы извлечь данные из базы данных Cisco UCCX (Informix) с помощью сценария Python.

После установки Informix Client SDK и pyodbc, как описано в этого руководства , я запускаю следующее соединение:

pyodbc.connect('SERVICE=1504;PROTOCOL=onsoctcp;CLIENT_LOCALE=en_US.UTF8;DB_LOCALE=en_US.UTF8;DRIVER={IBM INFORMIX ODBC DRIVER (64-bit)};UID=uccxhruser;PWD=my_pwd;DATABASE=db_cra;HOST=my-uccx;SERVER=my-uccx_uccx')

Но я получаю следующую ошибку:

Ошибка: ('HY000', '[HY000] [Informix] [ Драйвер ODBC для Informix] [Informix] INFORMIXSERVER не соответствует ни DBSERVERNAME, ни DBSERVERALIASES. (-761) (SQLDriverConnect) ')

Как это исправить?

1 Ответ

1 голос
/ 14 февраля 2020

Преобразование комментариев в ответ.

На первый взгляд, вы задали переменную среды $INFORMIXSERVER (или указали ее значение в Строка подключения) неверное значение. Имена серверов не должны содержать тире, поэтому возможно, что SERVER=my-uccx_uccx в строке подключения неисправен или может быть где-то еще. Я бы рискнул предположить, что ваш сервер взамен my_uccx_uccx (подчеркивание вместо да sh) - но это предположение. Знание того, что указано для фактического сервера, будет иметь решающее значение.

Соответствует ли переменная INFORMIXSERVER параметру SERVER в строке подключения?

Это информация, которую я не делаю ' у него есть - вполне вероятно, что SERVER в строке подключения соответствует INFORMIXSERVER в качестве переменной среды, но я точно не знаю.

Учитывая более поздний успех, вероятно что SERVER в строке подключения соответствует INFORMIXSERVER в среде.

Ухххххххххх! Оказалось, что имя сервера было my_uccx_uccx вместо my-uccx_uccx, и теперь оно работает.

Отлично - я рад, что вы работаете.

...