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:(https://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/odbcil mio caso:
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 -
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.soServer = 192.168.x.xPort = 51271- nel progetto Qt:
QSqlDatabase mydb = QSqlDatabase::addDatabase("QODBC");mydb.setDatabaseName("MYDSN")mydb.setUserName("name on Database");mydb.setPassword(" password on Database");