Steg för att aktivera/testa QODBC på Mac OS ((Seirra) mot MSSQL eller någon annan ODBC DB:
Symptom 1:Qt Run (Debug)-applikation kraschar (programmet avslutades oväntat/kraschade). Symptom 2:Qt Creator med förbyggda Qt-paket (MaintenanceTool).
Symptom 3:freeTDS-drivrutinen (libtdsodbc.so) saknas efter installation av freeTDS-paket.
Symptom 4:Qt byggd/konfigurerad före eller med saknad unixODBC.
- Ladda ner och installera unixODBC (måste göras innan du installerar freeTDS )(www.unixODBC.org ) / (Drivrutiner) / (unixODBC-2.3.4.tar.gz)
packa upp och ta bort paketen.
./configure --prefix=/usr/local/unixODBC
(se till att du kan skriva ELLER sudo)
make
sudo make istall
- Ladda ner och installera freeTDS:(http://www.freetds.org/ ) / ( Snabblänkar) / (Senaste versioner) / (Stabil utgåva)
untar/packa upp paketet.
./configure --prefix=/usr/local/freeTDS --with-unixodbc=/usr/local/unixODBC/
make
sudo make istall
Obs:--with-unixodbc
kommer att få drivrutinen (libtdsodbc.so) att installeras.
-
Tyvärr borde möjligen ODBC-pluginen på Qt byggas om:
-
Om du använder de förbyggda Qt-biblioteken måste du ladda ner källor med MaintenanceTool ($QTDIR/MaintenanceTool.app)
-
Berätta för qmake var du hittar unixODBC-huvudfilerna och delade biblioteken (här antas det att unixODBC är installerat i /usr/local/unixODBC) och kör make:
cd $QTDIR/qtbase/src/plugins/sqldrivers/odbc
mitt fall:
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
-
om det går rätt:du kommer att få uppfyllda QODBC new libs:
cd ../plugins/sqldrivers/
kopiera de nya paketen till t.ex. :
/usr/local/Qt/5.9.1/clang_64/plugins/sqldrivers/
- Konfigurera /etc/local/unixODBC/etc/odbc.ini (du kan behöva rootbehörigheter att ändra)
(Inget behov av att konfigurera freeTDS):
- (vilken port? vilken version -> Kör
/usr/local/freeTDS/bin/tsql -LH 192.168.x.x
-
Skapa/Ändra 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-projektet:
QSqlDatabase mydb = QSqlDatabase::addDatabase("QODBC");
mydb.setDatabaseName("MYDSN")
mydb.setUserName("name on Database");
mydb.setPassword(" password on Database");