Qt World Summit: Submit your Presentation

Qt unixODBC and FreeTDS

  • Hi,
    I am trying to connect Qt with MSSQL server DB, for this I am using unixODBC and FreeTDS.
    I tested unixODBC and FreeTDS, they were working fine, as I tested isql, tsql.
    The problem was Qt is not refering to the settings files(~/.odbc.ini and ~/freetds.ini) but Qt is refering to some other location, hence I am getting the error "QSqlError(0, "QODBC3: Unable to connect", " [unixODBC][Driver Manager]Data source name not found, and no default driver specified")"
    How I can tell Qt to point to the settings file location. or how I can get on which location Qt is refering.
    I created the symbolic link of the files in (/etc , /usr/local/etc, /etc/unixODBC/) but none of them were working.
    Any help will be appreciated greatly, thnx in advance:)

  • My ini file content
    cat ~/.odbc.ini
    Driver = FreeTDS
    Description = Northwind sample database
    Trace = No
    Server =
    Port = 1433
    Database = JSEB_SBM
    cat /usr/local/etc/freetds.conf
    #$Id: freetds.conf,v 1.12 2007/12/25 06:02:36 jklowden Exp $

    #This file is installed by FreeTDS if no file by the same
    #name is found in the installation directory.

    #For information about the layout of this file and its settings,
    #see the freetds.conf manpage "man freetds.conf".

    #Global settings are overridden by those in a database
    #server specific section
    # TDS protocol version
    ; tds version = 4.2

    # Whether to write a TDSDUMP file for diagnostic purposes
    # (setting this to /tmp is insecure on a multi-user system)

    ; dump file = /tmp/freetds.log
    ; debug flags = 0xffff

    # Command and connection timeouts

    ; timeout = 10
    ; connect timeout = 10

    # If you get out-of-memory errors, it may mean that your client
    # is trying to allocate a huge buffer for a TEXT field.  
    # Try setting 'text size' to a more reasonable limit 
    text size = 64512

    #A typical Sybase server
    host = symachine.domain.com
    port = 5000
    tds version = 5.0

    #A typical Microsoft server
    host =
    port = 1433
    tds version = 7.1
    and my Qt call
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC3");