Configurer MySql avec Qt sous QtCreator 2.4.1
Fermé
Mourad2009B
Messages postés
108
Date d'inscription
lundi 23 août 2010
Statut
Membre
Dernière intervention
28 octobre 2024
-
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
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
A voir également:
- Configurer MySql avec Qt sous QtCreator 2.4.1
- Configurer chromecast - Guide
- Configurer foyer netflix - Accueil - Guide streaming
- Mysql community server - Télécharger - Bases de données
- Configurer et restaurer - Guide
- Configurer chromecast usine - Guide
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
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
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