Étapes pour activer/tester QODBC sur Mac OS ((Seirra) vers MSSQL ou toute autre base de données ODBC :
Symptôme 1 :L'application Qt Run (Debug) plante (le programme s'est terminé/planté de manière inattendue). Symptôme 2 :Qt Creator avec des packages Qt pré-construits (MaintenanceTool).
Symptôme 3 :le pilote freeTDS (libtdsodbc.so) est manquant après l'installation des packages freeTDS.
Symptôme 4 :Qt construit/configuré avant ou avec unixODBC manquant.
- Téléchargez et installez unixODBC (doit être fait avant d'installer freeTDS )(www.unixODBC.org ) / (Pilotes) / (unixODBC-2.3.4.tar.gz)
décompressez et décompressez les packages.
./configure --prefix=/usr/local/unixODBC (assurez-vous que vous pouvez écrire OR sudo)
make
sudo make istall
- Téléchargez et installez freeTDS :(https://www.freetds.org/ ) / ( Liens rapides) / (Dernières versions) / (Version stable)
décompressez/décompressez le package.
./configure --prefix=/usr/local/freeTDS --with-unixodbc=/usr/local/unixODBC/
make
sudo make istall
Remarque :--with-unixodbc entraînera l'installation du pilote (libtdsodbc.so).
-
Malheureusement, il est possible que le plugin ODBC sur Qt doive être reconstruit :
-
Si vous utilisez les bibliothèques Qt prédéfinies, vous devrez télécharger les sources à l'aide de MaintenanceTool ($QTDIR/MaintenanceTool.app)
-
Indiquez à qmake où trouver les fichiers d'en-tête unixODBC et les bibliothèques partagées (ici, on suppose qu'unixODBC est installé dans /usr/local/unixODBC) et exécutez make :
cd $QTDIR/qtbase/src/plugins/sqldrivers/odbcmon cas :
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 -
si cela se passe correctement :vous obtiendrez les nouvelles bibliothèques QODBC conformes :
cd ../plugins/sqldrivers/
copier les nouveaux packages par exemple vers :
/usr/local/Qt/5.9.1/clang_64/plugins/sqldrivers/
- Configurez /etc/local/unixODBC/etc/odbc.ini (vous aurez peut-être besoin des autorisations root modifier)
(Pas besoin de configurer freeTDS) :
- (quel port ? quelle version -> Exécuter
/usr/local/freeTDS/bin/tsql -LH 192.168.x.x -
Créer/Modifier une entrée dans /usr/local/unixODBC/etc/odbc.ini
[MYDSN]Driver = /usr/local/freeTDS/lib/libtdsodbc.0.soServer = 192.168.x.xPort = 51271- dans le projet Qt :
QSqlDatabase mydb = QSqlDatabase::addDatabase("QODBC");mydb.setDatabaseName("MYDSN")mydb.setUserName("name on Database");mydb.setPassword(" password on Database");