sql >> Database teknologi >  >> RDS >> Oracle

Qt-applikation går ned, når du bruger ODBC-driver (macOS)

Trin til at aktivere/teste QODBC på Mac OS ((Seirra) mod MSSQL eller enhver anden ODBC DB:

Symptom 1:Qt Run (Debug) applikation går ned (program uventet afsluttet/krasket). Symptom 2:Qt Creator med forudbyggede Qt-pakker (MaintenanceTool).

Symptom 3:freeTDS-driver (libtdsodbc.so) mangler efter installation af freeTDS-pakker.

Symptom 4:Qt bygget/konfigureret før eller med manglende unixODBC.

  1. Download og installer unixODBC (skal udføres, før du installerer freeTDS )(www.unixODBC.org ) / (Drivere) / (unixODBC-2.3.4.tar.gz)

unzip og untar pakkerne.

./configure --prefix=/usr/local/unixODBC (vær sikker på at du kan skrive ELLER sudo)

make sudo make istall

  1. Download og installer freeTDS:(http://www.freetds.org/ ) / ( Hurtige links) / (Seneste versioner) / (Stabil udgivelse)

untar/udpak pakken.

./configure --prefix=/usr/local/freeTDS --with-unixodbc=/usr/local/unixODBC/

make

sudo make istall

Bemærk:--with-unixodbc vil få driveren (libtdsodbc.so) til at blive installeret.

  1. Desværre burde muligvis ODBC-plugin'et på Qt genopbygges:

    • Hvis du bruger de forudbyggede Qt-biblioteker, skal du downloade kilder ved hjælp af MaintenanceTool ($QTDIR/MaintenanceTool.app)

    • Fortæl qmake, hvor unixODBC-headerfilerne og delte biblioteker skal findes (her antages det, at unixODBC er installeret i /usr/local/unixODBC) og kør make:

    cd $QTDIR/qtbase/src/plugins/sqldrivers/odbc

    mit tilfælde:cd /usr/local/Qt/5.9.1/Src/qtbase/src/plugins/sqldrivers/odbc

    qmake "INCLUDEPATH+=/usr/local/unixODBC/include" "LIBS+=-L/usr/local/unixODBC/lib -lodbc"

    make

hvis det går korrekt:du vil få overholdt QODBC new libs:

cd ../plugins/sqldrivers/

kopier de nye pakker for eksempel til :

/usr/local/Qt/5.9.1/clang_64/plugins/sqldrivers/
  1. Konfigurer /etc/local/unixODBC/etc/odbc.ini (du skal muligvis have rodtilladelser at ændre)

(Ingen grund til at konfigurere freeTDS):

  • (hvilken port? hvilken version -> Kør/usr/local/freeTDS/bin/tsql -LH 192.168.x.x
  • Opret/Rediger post i /usr/local/unixODBC/etc/odbc.ini

    [MYDSN]

    Driver = /usr/local/freeTDS/lib/libtdsodbc.0.so

    Server = 192.168.x.x

    Port = 51271

    1. i Qt-projekt:

    QSqlDatabase mydb = QSqlDatabase::addDatabase("QODBC");

    mydb.setDatabaseName("MYDSN")

    mydb.setUserName("name on Database");

    mydb.setPassword(" password on Database");




  1. Java Server Pages - sortering ved indsættelse i MySql?

  2. Mysql starter ikke efter opgradering af Mac OS X Yosemite (Mac OS 10.10)

  3. Kan jeg konfigurere en filtreret databasereplikering med stjernemønster?

  4. Fjern numre fra string sql-server