Configurer MySql avec Qt sous QtCreator 2.4.1

Fermé
Mourad2009B Messages postés 100 Date d'inscription lundi 23 août 2010 Statut Membre Dernière intervention 7 juillet 2023 - 17 sept. 2012 à 19:23
berrayahkamel Messages postés 174 Date d'inscription mardi 31 juillet 2007 Statut Membre Dernière intervention 6 avril 2020 - 14 mai 2013 à 01:48
Bonjour à tous,
je travaille avec qtCreator 2.4.1 basé sur Qt 4.7. et j'ai essaye de le configurer avec Mysql, mais j'ai le message suivant Driver not loaded, j'ai déjà travaillé avec QSQlite, et ça ce passer très bien. donc si quelqu'un peut m'aider SVP. ça fait presque 3 semaines que je suis bloqué, et je ne trouve rien sur internet.
si vous connaissez un lien vers un tuto ou si vous avez la marche à suivre je vous serai très reconnaissant.
Merci d'avance
A voir également:

1 réponse

berrayahkamel Messages postés 174 Date d'inscription mardi 31 juillet 2007 Statut Membre Dernière intervention 6 avril 2020 64
14 mai 2013 à 01:48
slalut
je viens juste de régler le problème

Il faut savoir que pour des soucis de licence MYSQL n'ai pas inclus automatiquement dans QT donc il faut le compiler par sois même .

QT support par défaut ODBC et SQLite . Donc il faut savoir qu'il y a toujours possibilité d'utiliser MYSQL en passant par ODB-MYSQL-CONNECTOR et ca marche au premier coups

instrucion dans QT pour le faire :
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC","MasourceDeDonnes");
db.setHostName("localhost");
db.setUserName("usermysql");
db.setPassword("pwdmysql");
db.setDatabaseName("masqldb");

db.open()


Sinon voila comment faire pour utiliser nativement MySQL dans QT


Donc voila ce qu'il faut faire

1. Installer la dernière version de Mysql sur le site officiel ( mysql-installer-community-5.6.11.0.msi ) le lien : https://dev.mysql.com/downloads/mysql/5.5.html#downloads
Je vous conseil de tout sélectionner :)


2. Installer QT win 32


3. Ouvrer le projet mysql.pro qui se trouve dans le chemin
D:\Qt\Qt5.0.2\5.0.2\Src\qtbase\src\plugins\sqldrivers\mysql

4. Pour réduire la longueur des chemin , je vous propose de Créer

un dossier c:\QT\MYSQL
5. Copier dans ce sous dossier mysql.h qui se trouve dans C:\Program Files\MySQL\MySQL Server 5.6\include

6. copier libmysql.lib dans c:\QT\MYSQL , ce dernier se trouve dans MySQL C:\Program Files\MySQL\MySQL Server 5.6\lib


7. Dans le QT creator Editer le fichier qsql_mysql.pri

Modifer la dernière ligne pour avoir ca

!contains(LIBS, .*mysql.*):!contains(LIBS, .*mysqld.*):LIBS+=-LD:/QT/MYSQL -llibmysql


pour rappel : D:/QT/MYSQL contient deux fichier : mysql.h et libmysql.lib

8. il y aura une erreur de compilation pour le fichier mysql.h

donc ouvrer le fichier header :
qsql_mysql.h

localiser l'include <mysql.h> et mettre le chemin complet


#include <D:\QT\MYSQL\mysql.h>

0 ce stade tout est OK

Dans lIDE du creator : lancer la compilation puis make

il y aura un dossier , voila chemin

D:\Qt\Qt5.0.2\5.0.2\Src\qtbase\src\plugins\sqldrivers\build-mysql-Desktop_Qt_5_0_2_MinGW_32bit-Debug

pour rappel le mysql.pro se trouve dans le dossier supérieur c'est a dire

D:\Qt\Qt5.0.2\5.0.2\Src\qtbase\src\plugins\sqldrivers\mysql


dans le dossier créer par la compilation (build-mysql-Desktop_Qt_5_0_2_MinGW_32bit-Debug) on va trouver les fichiers suivants


Makefile
Makefile.Debug
Makefile.Release

Aller en ligne de commande sur ce chemin

puis taper comme suite :

D:\Qt\Qt5.0.2\5.0.2\Src\qtbase\src\plugins\sqldrivers\build-mysql-Desktop_Qt_5_0
_2_MinGW_32bit-Debug> mingw32-make -f Makefile release-install

D:\Qt\Qt5.0.2\5.0.2\Src\qtbase\src\plugins\sqldrivers\build-mysql-Desktop_Qt_5_0
_2_MinGW_32bit-Debug>mingw32-make -f Makefile debug-install

si tout ce passe bien on aura
mingw32-make -f Makefile.Debug install
mingw32-make[1]: Entering directory 'D:/Qt/Qt5.0.2/5.0.2/Src/qtbase/src/plugins/
sqldrivers/build-mysql-Desktop_Qt_5_0_2_MinGW_32bit-Debug'
copy /y "\plugins\sqldrivers\qsqlmysqld.dll" "d:\Qt\Qt5.0.2\5.0.2\mingw47_32\plu
gins\sqldrivers\qsqlmysqld.dll"
1 fichier(s) copié(s).
mingw32-make[1]: Leaving directory 'D:/Qt/Qt5.0.2/5.0.2/Src/qtbase/src/plugins/s
qldrivers/build-mysql-Desktop_Qt_5_0_2_MinGW_32bit-Debug'


presque meme chose pour le release

Aller dans le dossier
D:\Qt\Qt5.0.2\5.0.2\mingw47_32\plugins\sqldrivers

vous aller trouver deux nouveaux DLL

qsqlmysql.dll et qsqlmysqld.dll

On aura besoin aussi de libmysql.dll qui se trouve dans mysql server

chemin : C:\Program Files\MySQL\MySQL Server 5.6\lib


Donc on a trois DLL importante :

qsqlmysql.dll qsqlmysqld.dll ==> qu'on a compiler
+
libmysql.dll ==> fournie par MySQL Server




pas fini :

Pour que QT createur fonctionne les trois DLL doivent etre copier dans

* D:\Qt\Qt5.0.2\5.0.2\mingw47_32\plugins\sqldrivers

* Dans le chemin de votre application monprog.exe

* D:\Qt\Qt5.0.2\Tools\QtCreator\bin\sqldrivers


voila maintenant dit que vous lancer une application du genre



int QTConnecttoMySQL(){

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setUserName("usermysql");
db.setPassword("pwdmysql");
db.setDatabaseName("mysql");
if(db.open())
{
std::cout << "Vous êtes maintenant connecté à " << q2c(db.hostName()) << std::endl;
db.close();
}else
{
std::cout << "La connexion a échouée, désolé :(" << std::endl <<
q2c(db.lastError().text()) << std::endl;
}


return 0;

};


Ca fonctonnera c'est promis


Remarque :

- On peu optimiser certaines opération et affiner le fichier .pri et le fichier .pro pour éviter de passer par la lignes de commande

mais c'est ce que m'a prés beucoups de temps , et vus que mon objectif et avoir les DLL don j'ai pas trops voulus perdre d'avantage du temps

voila je vous donne presque 20 heures de galère sur un plateau , enjoy
3