Cette histoire m'énerve à un point ! :furieux:
Je n'ai pas de fichier C:\Qt\4.3.3\bin\qtvars.bat
Normal ?
Est-ce que pour Installer ce driver, je dois réinstaller ou compiler Qt ?
Version imprimable
Cette histoire m'énerve à un point ! :furieux:
Je n'ai pas de fichier C:\Qt\4.3.3\bin\qtvars.bat
Normal ?
Est-ce que pour Installer ce driver, je dois réinstaller ou compiler Qt ?
Si tu n'as pas installé Qt 4.3.3, oui, c'est parfaitement normal. Vu que tu as le SDK, il est dans C:\Qt\2010.03\qt\bin.*
En fait c'est plutôt C:\Qt\2010.03\qt\bin\qtvars.bat que je n'ai pas.
J'ai refait ce qu'il y avait dans la doc , j'ai fait qmake "INCLUDEPATH+=C:\MySQL\include" "LIBS+=C:\MySQL\lib\opt\libmysql.lib" mysql.pro et j'ai remplacé nmake par mingw32-make et j'obtient dans le dossier C:\Qt\2010.03\qt\plugins\sqldrivers
J'ai 4 nouveau fichiers :
qsqlmysql4.a
qsqlmysqld4.a
qsqlmysql4.dll
qsqlmysqld4.dll
Mais le plugin QMYSQL n'est toujours pas installé si j'utilise la fonction QSqlDatabase::drivers().
Que faire maintenant ? :cry:
Si le plug-in est dans le bon dossier, il lui manque alors les DLL pour se lancer : donne lui les DLL qu'il veut (libmysql.dll, il me semble ; voir le dossier bin de MySQL : C:\MySQL\bin ou opt peut-être).*
Là, il est installé : il n'arrive pas à se lacner.*
Je le met où libmysql.dll ? Dans le dossier C:\Qt\2010.03\qt\plugins\sqldrivers ?
Soit là, soit près de ton exécutable (il paraît que ça fonctionne, jamais essayé).*
Pour le déploiement, copie le dossier plugins dans le répertoire de ton application.*
Je met libmysql.dll dans le dossier C:\Qt\2010.03\qt\plugins\sqldrivers
Et j'ai les plugins QMYSQL et QMYSL3 qui apparaissent dans mon QListWidget.
Quand j'essaye d'effectuer une connexion :
Erreur : Driver not loaded :cry:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 QSqlDatabase myBase = QSqlDatabase::addDatabase("QMYSQL"); myBase.setDatabaseName("udp_test"); // DSN que nous venons de créer. myBase.setHostName("localhost"); myBase.setUserName("root"); myBase.setPassword(""); if(myBase.open()) { QMessageBox::information(this, "QMYSQL poto ;)", "BDD MySQL co !"); } else { QMessageBox::critical(this, "Database Error", myBase.lastError().text()); }
Pour diffuser mon programme, je met le dossier suivant : C:\Qt\2010.03\qt\plugins à côté de mon exécutable ?
J'ai ramé quelques jours la dessus aussi il y a peu, voila comment je m'en suis sortit:
j'ai compilé le driver mysql comme dans la doc.
Après, j'ai juste copié le fichier libmysql.dll dans le dossier de l'appli, dans le dossier plugin de qt ça ne marchait pas non plus chez moi...
Pi ba la comme ça ça marche.
Si je lance l'exécutable sans passer par Qt Creator et autre en ajoutant les dll QtGui4, QtCore4, QtSql4 et libmySQL.dll ça marche. Mais pas si je lance directement avec Qt Creator.
Comment fait-on pour linker explicitement libmySQL.dll sous Qt Creator ?
EDIT : Sujet résolu, MSQL + Qt semble fonctionner à merveille !