Как я могу подключиться к HFSQL C/S с помощью Python в Linux?Linux

Ответить
Anonymous
 Как я могу подключиться к HFSQL C/S с помощью Python в Linux?

Сообщение Anonymous »

Я пытаюсь подключиться к устаревшей базе данных клиента/сервера HFSQL (HyperFileSQL) с использованием Python (pyodbc) на компьютере с Linux и Ubuntu.
Я следовал официальной документации для установки конкретного драйвера ODBC для Linux, но постоянно получаю ошибку IM002, указывающую на отключение между диспетчером драйверов и файлами конфигурации.
Настройка системы:
  • ОС: Ubuntu 20.04 (приблизительно)
  • Драйвер: HFSQL ODBC Linux 64-разрядная версия (через install.sh)
  • Менеджер ODBC: libiodbc2 libiodbc2-dev
  • Пакет Python: pyodbc
Выполненные шаги по настройке:
  • Я установил зависимости, необходимые WinDev:

Код: Выделить всё

sudo apt-get install libiodbc2 libiodbc2-dev
  • Драйвер успешно установлен. Я проверил запись в /etc/odbcinst.ini:

Код: Выделить всё

[ODBC Drivers]
HFSQL = Installed

[HFSQL]
Description = HFSQL ODBC Driver
Driver = /home/datpandx/hfsql/wd250hfo64.so
  • Я настроил пользовательский DSN в ~/.odbc.ini:

Код: Выделить всё

[ODBC Data Sources]
HFSQL_FRUTAL = HFSQL

[HFSQL_FRUTAL]
Driver = HFSQL
Server Name = 26.***
Server Port = 4900
Database = ***
UID = ***
PWD = ***
Диагностика: при запуске pyodbc.drivers() правильно отображается «HFSQL», что предполагает, что Python может читать файл odbcinst.ini. Однако при проверке двоичных зависимостей драйвера с помощью ldd я вижу, что он ссылается на libiodbc, в то время как pyodbc обычно использует unixODBC.
Проблема: когда я пытаюсь подключиться с использованием строки подключения без DSN (чтобы исключить проблемы с путем к файлу .ini), происходит немедленный сбой.
Код:

Код: Выделить всё

    import pyodbc

print(f"Available Drivers: {pyodbc.drivers()}")
# Output: ['ODBC Drivers', 'HFSQL']

user = '***'
password = '***'

try:
conn_str = (
f"DSN={driver_name};"
f"UID={user};"
f"PWD={password};"
)

print(f"Trying to connect to: {driver_name} ...")
conn = pyodbc.connect(conn_str)
print("¡CONNECTED!")
conn.close()

except Exception as e:
print("Fail")
print(e)

Ошибка:

Код: Выделить всё

['ODBC Drivers', 'HFSQL']
Trying to connect to: HFSQL_FRUTAL ...
Fail
('HY000', 'The driver did not supply an error!')
Что я пробовал:
  • Проверенные пути к файлам в /etc/odbcinst.ini являются абсолютными и правильными.
  • Попытался явно установить переменные среды перед запуском
    скрипта: экспорт LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/datpandx/hfsql
  • Пытался использовать подход DSN (DSN=HFSQL_FRUTAL) с той же ошибкой

    результат.
Существует ли известное решение между pyodbc и драйвером HFSQL (которое, похоже, зависит от iODBC)? Как я могу преодолеть этот пробел в Linux?

Подробнее здесь: https://stackoverflow.com/questions/798 ... n-on-linux
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»