Stappen om QODBC op Mac OS ((Seirra) naar MSSQL of een andere ODBC DB te activeren/testen:
Symptoom 1:Qt Run (Debug) applicatie crasht (programma onverwacht beëindigd/crasht). Symptoom 2:Qt Creator met vooraf gebouwde Qt-pakketten (MaintenanceTool).
Symptoom 3:freeTDS-stuurprogramma (libtdsodbc.so) ontbreekt na installatie van freeTDS-pakketten.
Symptoom 4:Qt gebouwd/geconfigureerd voor of met ontbrekende unixODBC.
- Download en installeer unixODBC (moet worden gedaan voordat freeTDS wordt geïnstalleerd )(www.unixODBC.org ) / (Stuurprogramma's) / (unixODBC-2.3.4.tar.gz)
unzip en untar de pakketten.
./configure --prefix=/usr/local/unixODBC
(zorg ervoor dat je OF sudo kunt schrijven)
make
sudo make istall
- Download en installeer freeTDS:(http://www.freetds.org/ ) / ( Snelle links) / (Nieuwste versies) / (Stabiele uitgave)
untar/unzip het pakket.
./configure --prefix=/usr/local/freeTDS --with-unixodbc=/usr/local/unixODBC/
make
sudo make istall
Opmerking:--with-unixodbc
zorgt ervoor dat het stuurprogramma (libtdsodbc.so) wordt geïnstalleerd.
-
Helaas moet mogelijk de ODBC-plug-in op Qt opnieuw worden opgebouwd:
-
Als u de vooraf gebouwde Qt-bibliotheken gebruikt, moet u bronnen downloaden met MaintenanceTool ($QTDIR/MaintenanceTool.app)
-
Vertel qmake waar de unixODBC-headerbestanden en gedeelde bibliotheken kunnen worden gevonden (hier wordt aangenomen dat unixODBC is geïnstalleerd in /usr/local/unixODBC) en voer make:uit:
cd $QTDIR/qtbase/src/plugins/sqldrivers/odbc
mijn geval:
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
-
als dat goed gaat:je krijgt de QODBC nieuwe libs:
cd ../plugins/sqldrivers/
kopieer de nieuwe pakketten bijvoorbeeld naar:
/usr/local/Qt/5.9.1/clang_64/plugins/sqldrivers/
- Configureer /etc/local/unixODBC/etc/odbc.ini (mogelijk hebt u root-rechten nodig om te veranderen)
(Het is niet nodig om freeTDS te configureren):
- (welke poort? welke versie -> Uitvoeren
/usr/local/freeTDS/bin/tsql -LH 192.168.x.x
-
Vermelding maken/wijzigen in /usr/local/unixODBC/etc/odbc.ini
[MYDSN]
Driver = /usr/local/freeTDS/lib/libtdsodbc.0.so
Server = 192.168.x.x
Port = 51271
- in Qt-project:
QSqlDatabase mydb = QSqlDatabase::addDatabase("QODBC");
mydb.setDatabaseName("MYDSN")
mydb.setUserName("name on Database");
mydb.setPassword(" password on Database");