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:(https://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/odbcmitt fall:
cd /usr/local/Qt/5.9.1/Src/qtbase/src/plugins/sqldrivers/odbcqmake "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.soServer = 192.168.x.xPort = 51271- i Qt-projektet:
QSqlDatabase mydb = QSqlDatabase::addDatabase("QODBC");mydb.setDatabaseName("MYDSN")mydb.setUserName("name on Database");mydb.setPassword(" password on Database");