Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 16 sur 16
  1. #1
    Invité régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    mai 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : mai 2011
    Messages : 27
    Points : 7
    Points
    7

    Par défaut Erreur chargement driver SQL

    Bonjour à tous,

    Voilà, j'aimerais me connecter à une base distante via mon logiciel, je rentre donc les infos comme il faut, mais au moment de la compilation, sa plante avec comme erreur :

    418006.png

    Et comme message d'erreur :

    Code :
    1
    2
    3
    4
    5
    6
    QSqlDatabase: QMYSQL driver not loaded
    QSqlDatabase: available drivers: 
    Cannot mix incompatible Qt library (version 0x40700) with this library (version 0x40801)
    Invalid parameter passed to C runtime function.
    Invalid parameter passed to C runtime function.
    QWaitCondition: Destroyed while threads are still waiting

    Voilà mon code de connexion :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    //User login
        QSqlDatabase user = QSqlDatabase::addDatabase("QMYSQL");
        user.setHostName("");
        user.setUserName("");
        user.setPassword("");
        user.setDatabaseName("");
     
        if(user.open())
        {
            QMessageBox::information(mainWindows,"Connexion réussie !","Vous êtes maintenant connecté à " + user.hostName());
            user.close();
        }
        else
        {
            QMessageBox::critical(mainWindows,"Erreur de connexion ...","La connexion a échouée, désolé");
        }

    J'ai vu qu'il fallait compilé le driver MySQL pour Qt pour avoir deux fameuse .dll, mais la compilation échoue.

    Je rentre cette commande, là pas de problème :

    Code :
    cd %QTDIR%\src\plugins\sqldrivers\mysql
    Puis je rentre cette commande mais là, il y a un bug :

    Code :
    1
    2
     
    qmake "INCLUDEPATH+=C:\Users\keylog\Desktop\mysql\\include" "LIBS+=C:\Users\keylog\Desktop\mysql\\lib\\libmysql.lib" mysql.pro
    c8VUS.png

    En regardant une fois de plus, j'ai l'impression que le QTDIR pointent sur le mauvais chemin ( mauvaise installation de Qt ). Qu'est-ce que vous en pensez ?

    Merci d'avance pour votre aide.

  2. #2
    Membre Expert
    Avatar de charlespf
    Homme Profil pro
    Développeur C/C++/Qt/PHP
    Inscrit en
    mai 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur C/C++/Qt/PHP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2005
    Messages : 242
    Points : 1 661
    Points
    1 661

    Par défaut

    ,

    En regardant la dernière pièce jointe, tu n'as pas généré le pilote MySQL pour Qt. Tu as juste exécuté la commande qmake qui génère le makefile pour la compilation mais pas le pilote.
    Il faut que tu exécutes la commande nmake pour générer le pilote.

    Par ailleurs, as-tu suivi l'article de dourouc05 pour la génération du pilote Mysql : http://qt.developpez.com/tutoriels/q...pilotes/mysql/ ?

    A partir de là, je pense que tu arriveras à résoudre ton pb .

    A+
    charlespf

  3. #3
    Invité régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    mai 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : mai 2011
    Messages : 27
    Points : 7
    Points
    7

    Par défaut

    Justement, j'ai suivis le tutoriel à la lettre, et toujours la même chose.
    Par ailleurs, dans le tutoriel, il ne nous parle pas de la génération du pilote, juste de l'installation de MySQL et de la compilation.

  4. #4
    Membre Expert
    Avatar de charlespf
    Homme Profil pro
    Développeur C/C++/Qt/PHP
    Inscrit en
    mai 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur C/C++/Qt/PHP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2005
    Messages : 242
    Points : 1 661
    Points
    1 661

    Par défaut

    OK.

    As-tu réussi à compiler les DLL du pilote Qt pour MySQL ?
    Quel compilateur utilises-tu ? MinGW ? Visual C++ ?

    A+

    Edit: je viens également de voir un truc, il faut doubler les '\' dans la commande qmake (mettre '\\' à la place de '\').

  5. #5
    Invité régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    mai 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : mai 2011
    Messages : 27
    Points : 7
    Points
    7

    Par défaut

    Non, je n'ai pas réussi à compiler les dll et j'utilise MinGW version 4.4 ainsi que Qt 4.8.4 si sa peux aider.

    Et oui, j'ai bien mis les doubles backslashes =/

  6. #6
    Membre Expert
    Avatar de charlespf
    Homme Profil pro
    Développeur C/C++/Qt/PHP
    Inscrit en
    mai 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur C/C++/Qt/PHP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2005
    Messages : 242
    Points : 1 661
    Points
    1 661

    Par défaut

    Salut,

    Ok. Je pose cette question car dans ton premier post, la deuxième image indique que tu utilises Qt en version 2010.5 (4.7.0).

    Peux-tu donner les erreurs de compilation si tu les as, afin de voir d'où vient le problème ?

    En te remerciant,

    A+
    charlespf

  7. #7
    Invité régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    mai 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : mai 2011
    Messages : 27
    Points : 7
    Points
    7

    Par défaut

    Quelles erreurs de compilations ? Les seules erreurs que j'ai sont celle là et quand j'essaye d’exécuter la commande mingw32-make -f Makefile.Debug, elle n'est aps reconnu en tant que commande existante =/

    PS: Désolé pour le temps de réponse, je n'ai pas eu l'occasion de revenir ici avant aujourd'hui.

  8. #8
    Membre Expert
    Avatar de charlespf
    Homme Profil pro
    Développeur C/C++/Qt/PHP
    Inscrit en
    mai 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur C/C++/Qt/PHP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2005
    Messages : 242
    Points : 1 661
    Points
    1 661

    Par défaut



    Pas de soucis pour le temps de réponse, je peux aussi mettre un peu de temps à répondre, n'étant pas tout le temps sur le forum .

    OK, je vois le problème. En gros la commande "mingw32-make" qui permet la compilation n'est pas présente dans ton PATH.
    Pour résoudre ce problème, quand tu as installé Qt sur ta machine, le programme d'installation a du te créer un groupe dans le menu démarrer de Windows. Dans ce groupe est présent une icone d'invite de commande qui permet de configurer l'environnement de compilation dans ton PATH ainsi que la variable QT_DIR.

    Cela devrait être bon ensuite

    A+

  9. #9
    Invité régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    mai 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : mai 2011
    Messages : 27
    Points : 7
    Points
    7

    Par défaut

    Effectivement, j'ai Qt 4.8.4 Prompt Command dans le dossier démarrer de mon Qt mais quelles commandes faut-il exécuter pour configurer ces PATH ?

  10. #10
    Membre Expert
    Avatar de charlespf
    Homme Profil pro
    Développeur C/C++/Qt/PHP
    Inscrit en
    mai 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur C/C++/Qt/PHP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2005
    Messages : 242
    Points : 1 661
    Points
    1 661

    Par défaut

    Salut

    Normalement lorsque tu lances le Prompt Qt depuis le menu démarrer, une invite de commandes s'affiche avec des informations au départ t'indiquant que des variables d'environnement ont été configurées et notamment la variable PATH.

    Si tu tapes "mingw32-make" (sans les guillements) dans l'invite, tu devrais avoir un message d'erreur t'indiquant qu'il n'y a pas de fichiers.

    Si c'est le cas, tu peux alors suivre l'article de dourouc05 cité dans les posts plus haut pour compiler le plugin MySQL pour Qt.

    A+

  11. #11
    Invité régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    mai 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : mai 2011
    Messages : 27
    Points : 7
    Points
    7

    Par défaut

    Voilà ce que j'ai en lancant la cmd de Qt et en entrant la commande que tu me dis d'entrer :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Setting up a MinGW/Qt only environment...
    -- QTDIR set to C:\Qt\4.8.4
    -- PATH set to C:\Qt\4.8.4\bin
    -- Adding C:\Dev\MinGW\bin to PATH
    -- Adding C:\Windows\System32 to PATH
    -- QMAKESPEC set to win32-g++
     
    C:\Qt\4.8.4>mingw32-make
    'mingw32-make' n'est pas reconnu en tant que commande interne
    ou externe, un programme exécutable ou un fichier de commandes.
     
    C:\Qt\4.8.4>
    Mais MinGW n'est pas installé à C:\Dev\MinGW\bin mais à C:\MinGW\bin. Comment changer sa ? Parce que je pense que c'est sa qui bloque.

  12. #12
    Invité régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    mai 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : mai 2011
    Messages : 27
    Points : 7
    Points
    7

    Par défaut

    C'est bon, j'ai changé la localisation de mon dossier MinGW pour que sa corresponde à ce que Qt a, et la compilation a l'air de fonctionner mais je me retrouve avec des dll pour sqlite et non pour MySQL, est-ce normal ?

  13. #13
    Membre Expert
    Avatar de charlespf
    Homme Profil pro
    Développeur C/C++/Qt/PHP
    Inscrit en
    mai 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur C/C++/Qt/PHP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2005
    Messages : 242
    Points : 1 661
    Points
    1 661

    Par défaut

    Salut,

    Il faut aller dans le répertoire C:\Qt\4.8.4-mingw\src\plugins\sqldrivers\mysql\debug et C:\Qt\4.8.4-mingw\src\plugins\sqldrivers\mysql\release pour vérifier que les DLL sont présentes (une dans chacun des répertoires).

    Ensuite, il faut les copier dans le répertoire suivant: C:\Qt\4.8.4-mingw\plugins\sqldrivers.

    POur vérifier la bonne prise en compte des plugins:
    1) Créer un projet Qt en console ;
    2) Dans le fichier .pro, ajouter "sql" (sans les guillemets) dans la ligne QT +=
    3) Dans le fichier main.cpp :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    #include <QtCore>
    #include <QtSql>
     
    int main(int argc, char *argv[])
    {
        QCoreApplication a(argc, argv);
     
        QStringList drivers = QSqlDatabase::drivers();
     
        foreach(QString driver, drivers)
        {
            qDebug() << driver;
        }
     
        return 0;
    }
    4) En exécutant ce code, tu verras afficher dans la console les pilotes MySQL pris en compte.

    A+

  14. #14
    Invité régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    mai 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : mai 2011
    Messages : 27
    Points : 7
    Points
    7

    Par défaut

    En faisant sa, j'obtiens sa :
    Code :
    1
    2
    3
    4
    5
    "QSQLITE"
    "QODBC3"
    "QODBC"
    "QMYSQL"
    Appuyez sur <ENTR&#9556;E> pour fermer cette fenÛtre...

  15. #15
    Membre Expert
    Avatar de charlespf
    Homme Profil pro
    Développeur C/C++/Qt/PHP
    Inscrit en
    mai 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur C/C++/Qt/PHP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2005
    Messages : 242
    Points : 1 661
    Points
    1 661

    Par défaut

    Salut

    Cela fonctionne bien . Ton pilote est bien compilé et pris en compte par Qt.

    A+
    charlespf

  16. #16
    Invité régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    mai 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : mai 2011
    Messages : 27
    Points : 7
    Points
    7

    Par défaut

    Bah écoute, merci pour la patience dont tu as fait preuve et pour ton aide, je t'en suis reconnaissant

    A bientôt !

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •