Passaggi per attivare/testare QODBC su Mac OS ((Seirra) verso MSSQL o qualsiasi altro DB ODBC:
Sintomo 1:l'applicazione Qt Run (Debug) si arresta in modo anomalo (programma terminato/bloccato in modo imprevisto). Sintomo 2:Qt Creator con pacchetti Qt predefiniti (MaintenanceTool).
Sintomo 3:il driver freeTDS (libtdsodbc.so) è mancante dopo l'installazione dei pacchetti freeTDS.
Sintomo 4:Qt compilato/configurato prima o con unixODBC mancante.
- Scarica e installa unixODBC (deve essere eseguito prima di installare freeTDS )(www.unixODBC.org ) / (Driver) / (unixODBC-2.3.4.tar.gz)
decomprimi e decomprimi i pacchetti.
./configure --prefix=/usr/local/unixODBC
(assicurati di poter scrivere OR sudo)
make
sudo make istall
- Scarica e installa freeTDS:(http://www.freetds.org/ ) / ( Collegamenti rapidi) / (Ultime versioni) / (Rilascio stabile)
decomprimi/decomprimi il pacchetto.
./configure --prefix=/usr/local/freeTDS --with-unixodbc=/usr/local/unixODBC/
make
sudo make istall
Nota:--with-unixodbc
causerà l'installazione del driver (libtdsodbc.so).
-
Sfortunatamente, forse il plug-in ODBC su Qt dovrebbe essere ricostruito:
-
Se stai utilizzando le librerie Qt predefinite, dovrai scaricare i sorgenti utilizzando MaintenanceTool ($QTDIR/MaintenanceTool.app)
-
Di' a qmake dove trovare i file header unixODBC e le librerie condivise (qui si presume che unixODBC sia installato in /usr/local/unixODBC) ed esegui make:
cd $QTDIR/qtbase/src/plugins/sqldrivers/odbc
il mio caso:
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
-
se ciò va correttamente:otterrai nuove librerie QODBC rispettate:
cd ../plugins/sqldrivers/
copia i nuovi pacchetti ad esempio in :
/usr/local/Qt/5.9.1/clang_64/plugins/sqldrivers/
- Configura /etc/local/unixODBC/etc/odbc.ini (potresti aver bisogno di permessi di root modificare)
(Non è necessario configurare freeTDS):
- (quale porta? quale versione -> Esegui
/usr/local/freeTDS/bin/tsql -LH 192.168.x.x
-
Crea/Modifica voce in /usr/local/unixODBC/etc/odbc.ini
[MYDSN]
Driver = /usr/local/freeTDS/lib/libtdsodbc.0.so
Server = 192.168.x.x
Port = 51271
- nel progetto Qt:
QSqlDatabase mydb = QSqlDatabase::addDatabase("QODBC");
mydb.setDatabaseName("MYDSN")
mydb.setUserName("name on Database");
mydb.setPassword(" password on Database");