IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Discussion :

QMYSQL driver not loaded


Sujet :

Bases de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 29
    Points : 15
    Points
    15
    Par défaut QMYSQL driver not loaded
    Bonjour à tous. Voilà, en fait je suis en train d'apprendre la programmation des interfaces sous Qt Creator. J'ai installé WAMP sur ma machine et j'aimerais que mon programme sous Qt Creator puisse utiliser la base de données que j'ai crée avec le SGBD MySQL du Wamp. Sauf que lors du test pour voir si la connexion à la base se passa bien, Qt Creator me renvoie une erreur : "QMYSQL driver not loaded"

    J'aimerais savoir comment faire pour régler ce problème de connexion. Je précise que j'aimerais utiliser le SGBD MySQL du WAMP .

    Ceci est le code source de mon fichier main.cpp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    #include <QApplication>
    #include <QtSql>
    #include <QSqlDataBase>
    #include <QSqlError>
    #include <QMessageBox>
     
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
     
        QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
        db.setHostName("localhost");
        db.setDatabaseName("gestion_election");
        db.setUserName("root");
        db.setPassword("");
        if(!db.open())
        {
            QMessageBox::critical(0, QObject::tr("Database Error"), db.lastError().text());
        }
        else
        {
            QMessageBox::information(0,"titre", "connexion réussie");
        }
        return app.exec();
    }
    Et voici le code source de mon fichier .pro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     SOURCES += \
        main.cpp
     
    QT += sql
     
    QT += widgets
     
    INCLUDEPATH += "C:\Qt\5.6\mingw49_32\plugins\sqldrivers"
    LIBS += "C:\Qt\5.6\mingw49_32\plugins\sqldrivers\qsqlmysql.dll"
    Merci d'avance pour vos réponses

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 44
    Points : 27
    Points
    27
    Par défaut
    Bonjour,

    Je ne suis pas sur que cela soit correcte cette partie dans ton pro file:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INCLUDEPATH += "C:\Qt\5.6\mingw49_32\plugins\sqldrivers"
    LIBS += "C:\Qt\5.6\mingw49_32\plugins\sqldrivers\qsqlmysql.dll"
    Si j'ai bien compris, normalement il va chercher directement dans le répertoire sqldrivers.

    Par contre il faut la lib de mysql libmysql.lib

    Il te faut plutôt :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LIBS+="<Chemin vers mysql>\libmysql.lib"
    On confirmera si je ne me trompe pas

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Je n'ai pas de fichier libmysql.lib. Et comme j'ai dit plus haut j'utilise WAMP

  4. #4
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 593
    Points
    188 593
    Par défaut
    A priori, si tu as installé Qt depuis un installateur en ligne officiel, tu as déjà l'extension nécessaire compilée (qsqlmysql.dll). Il faut bien placer ce fichier lors du déploiement de ton application, ainsi que fournir la dépendance nécessaire, un fichier libmysql.dll probablement.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    C'est ce que j'ai fait et j'ai toujours le même problème

  6. #6
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 593
    Points
    188 593
    Par défaut
    Qu'as-tu fait, exactement ? Quels fichiers as-tu copié, en les prenant où ? À partir de là, on pourra peut-être discuter et, qui sait, t'aider .
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par dourouc05 Voir le message
    Qu'as-tu fait, exactement ? Quels fichiers as-tu copié, en les prenant où ? À partir de là, on pourra peut-être discuter et, qui sait, t'aider .
    J'ai copié les fichiers suivants :
    - libmysql.dll depuis le dossier MySQL de mon wamp
    - qsqlmysql.dll et qsqlmysql.dll depuis le dossiers drivers du dossier d'installation de Qt

    J'ai collé le premier fichier dans les dossiers chemins suivants: C:\Qt\5.6\mingw49_32\plugins\sqldrivers , C:\Qt\5.6\mingw49_32\plugins\bin

    J'ai également collé ces trois fichiers dans le dossier où se trouve le fichier .exe de mon projet.

    Voilà c'est à peu près tout.

    Merci d'avance pour votre réponse.

  8. #8
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 593
    Points
    188 593
    Par défaut
    A priori, c'est correct comme manière de procéder . Les extensions SQL de Qt se placent toujours dans un dossier sqldriver, inutile de mettre tes qsqlmysql.dll au niveau de ton application (contrairement au libmysql.dll).

    Si tu affiches le résultat d'un qApp->libraryPaths() (http://doc.qt.io/qt-5/qcoreapplicati...l#libraryPaths), vois-tu bien un répertoire qui contient un dossier sqldriver (avec, donc, un qsqlmysql.dll dedans) ?
    Le pilote MySQL est-il bien listé côté Qt SQL (hhttp://doc.qt.io/qt-5/qsqldatabase.html#drivers) ?

    Sinon, c'est probablement que ton libmysql.dll n'est pas reconnu : mauvais compilateur ou version… Selon tes chemins, regarde si la version indiquée dans https://wiki.qt.io/Qt-5.6.0-tools-and-versions correspond à celle de WAMP. Sinon, recompiler l'extension côté Qt avec cette version de MySQL devrait aider.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Concernant la version de MySQL j'ai une version supérieure à celle dont on fait mention. De plus ils font plutôt mention de Windows 7 32 bit alors que moi j'ai Windows 7 64 bits. Concernant le répertoire, vu qu'il est déjà présent physiquement, je ne vois pas pourquoi afficher encore cela. Le pilote MySQL est bien listé. Lors de la compilation Qt affiche la liste des pilotes disponibles et QMYSQL y figure.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Salut à tous. J'ai finalement résolu mon problème. En fait il fallait juste télécharger la version de MySQL qui correspond à celui que j'utilise sous mon WAMP. Après il faut copier les fichiers libmysql.dll, libmysqld.dll, libmysql.lib, qsqlmysqld.dll et qsqlmysql.dll dans le dossier où se trouve votre exe. Il faut également copier ces fichiers dans le dossiers sqldrivers du dossier d'installation de votre Qt. Concernant le fichier .pro, dans la ligne du LIB , tu mets plutôt libmysql.lib à la fin au lieu de qsqlmysql.dllL.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 13
    Points : 24
    Points
    24
    Par défaut
    Bonsoir,

    Supprime les deux dernières lignes de ton .pro, et rajoute :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LIBS += -LC:\wamp\bin\mysql\mysql5.7.9\lib -llibmysql
    ( Ca, c'est chez moi, je te laisse modifier en conséquence, le but étant de linker libmysql.dll )

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Wamp] Réseau PHP/Internet Explorer
    Par fab22montpellier dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 10/10/2005, 15h06
  2. Nom de fichier PDF Creator
    Par le_parrain dans le forum Composants VCL
    Réponses: 3
    Dernier message: 28/02/2005, 18h11
  3. Réponses: 1
    Dernier message: 26/08/2004, 16h23
  4. 3D games creator
    Par SQUAL dans le forum DirectX
    Réponses: 2
    Dernier message: 21/02/2003, 17h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo