0

I am trying to connect to a legacy HFSQL (HyperFileSQL) Client/Server database using Python (pyodbc) on a Linux Ubuntu machine.

I have followed the official documentation to install the specific ODBC driver for Linux, but I keep getting an IM002 error indicating a disconnect between the Driver Manager and the configuration files.

System Setup:

  • OS: Ubuntu 20.04 (approx)
  • Driver: HFSQL ODBC Linux 64-bit (via install.sh)
  • ODBC Manager: libiodbc2 libiodbc2-dev
  • Python Package: pyodbc

Configuration Steps Taken:

  • I installed the dependencies required by WinDev:
sudo apt-get install libiodbc2 libiodbc2-dev
  • I installed the driver successfully. I verified the entry in /etc/odbcinst.ini:
[ODBC Drivers]
HFSQL = Installed
    
[HFSQL]
Description = HFSQL ODBC Driver
Driver = /home/datpandx/hfsql/wd250hfo64.so
  • I configured a User DSN in ~/.odbc.ini:
[ODBC Data Sources]
HFSQL_FRUTAL = HFSQL
    
[HFSQL_FRUTAL]
Driver = HFSQL
Server Name = 26.***
Server Port = 4900
Database = ***
UID = ***
PWD = ***

Diagnostics: Running pyodbc.drivers() correctly lists 'HFSQL', which suggests Python can read the odbcinst.ini file. However, when inspecting the driver binary dependencies with ldd, I see it links to libiodbc, while pyodbc typically relies on unixODBC.

The Problem: When I try to connect using a DSN-less connection string (to rule out .ini file path issues), it fails immediately.

Code:

    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)

The error:

['ODBC Drivers', 'HFSQL']
Trying to connect to: HFSQL_FRUTAL ...
Fail
('HY000', 'The driver did not supply an error!')

What I have tried:

  • Verified file paths in /etc/odbcinst.ini are absolute and correct.
  • Tried setting environment variables explicitly before running the script: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/datpandx/hfsql
  • Tried using the DSN approach (DSN=HFSQL_FRUTAL) with the same error
    result.

Is there a known solution between pyodbc and the HFSQL driver (which appears to depend on iODBC)? How can I bridge this gap on Linux?

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.