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.
- 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
- 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.
-
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/
- 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
- i Qt-projekt:
QSqlDatabase mydb = QSqlDatabase::addDatabase("QODBC");
mydb.setDatabaseName("MYDSN")
mydb.setUserName("name on Database");
mydb.setPassword(" password on Database");