Configurer MySql avec Qt sous QtCreator 2.4.1

Mourad2009B Messages postés 145 Statut Membre -  
berrayahkamel Messages postés 175 Date d'inscription   Statut Membre Dernière intervention   -
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

1 réponse

  1. berrayahkamel Messages postés 175 Date d'inscription   Statut Membre Dernière intervention   64
     
    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