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 :

Erreur chargement driver SQL


Sujet :

Bases de données

  1. #1
    Membre à l'essai
    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 : 17
    Points
    17
    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 :

    Nom : 418006.png
Affichages : 315
Taille : 19,8 Ko

    Et comme message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : 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
    //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 : Sélectionner tout - Visualiser dans une fenêtre à part
    cd %QTDIR%\src\plugins\sqldrivers\mysql
    Puis je rentre cette commande mais là, il y a un bug :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    qmake "INCLUDEPATH+=C:\Users\keylog\Desktop\mysql\\include" "LIBS+=C:\Users\keylog\Desktop\mysql\\lib\\libmysql.lib" mysql.pro
    Nom : c8VUS.png
Affichages : 182
Taille : 32,8 Ko

    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 expérimenté
    Avatar de charlespf
    Homme Profil pro
    Développeur C/C++/Qt/Python et WebPHP
    Inscrit en
    Mai 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 251
    Points : 1 683
    Points
    1 683
    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
    Membre à l'essai
    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 : 17
    Points
    17
    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 expérimenté
    Avatar de charlespf
    Homme Profil pro
    Développeur C/C++/Qt/Python et WebPHP
    Inscrit en
    Mai 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 251
    Points : 1 683
    Points
    1 683
    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
    Membre à l'essai
    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 : 17
    Points
    17
    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 expérimenté
    Avatar de charlespf
    Homme Profil pro
    Développeur C/C++/Qt/Python et WebPHP
    Inscrit en
    Mai 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 251
    Points : 1 683
    Points
    1 683
    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
    Membre à l'essai
    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 : 17
    Points
    17
    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 expérimenté
    Avatar de charlespf
    Homme Profil pro
    Développeur C/C++/Qt/Python et WebPHP
    Inscrit en
    Mai 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 251
    Points : 1 683
    Points
    1 683
    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
    Membre à l'essai
    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 : 17
    Points
    17
    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 expérimenté
    Avatar de charlespf
    Homme Profil pro
    Développeur C/C++/Qt/Python et WebPHP
    Inscrit en
    Mai 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 251
    Points : 1 683
    Points
    1 683
    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
    Membre à l'essai
    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 : 17
    Points
    17
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Membre à l'essai
    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 : 17
    Points
    17
    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 expérimenté
    Avatar de charlespf
    Homme Profil pro
    Développeur C/C++/Qt/Python et WebPHP
    Inscrit en
    Mai 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 251
    Points : 1 683
    Points
    1 683
    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 : 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
     
    #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
    Membre à l'essai
    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 : 17
    Points
    17
    Par défaut
    En faisant sa, j'obtiens sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    "QSQLITE"
    "QODBC3"
    "QODBC"
    "QMYSQL"
    Appuyez sur <ENTR╔E> pour fermer cette fenÛtre...

  15. #15
    Membre expérimenté
    Avatar de charlespf
    Homme Profil pro
    Développeur C/C++/Qt/Python et WebPHP
    Inscrit en
    Mai 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 251
    Points : 1 683
    Points
    1 683
    Par défaut
    Salut

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

    A+
    charlespf

  16. #16
    Membre à l'essai
    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 : 17
    Points
    17
    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.

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/12/2010, 17h50
  2. Drivers SQL server pour Perl DBI ?
    Par panaone dans le forum SGBD
    Réponses: 14
    Dernier message: 05/05/2006, 22h29
  3. driver Sql Server IBM
    Par ridondo dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 13/09/2005, 18h45
  4. [CR] erreur de driver oracle
    Par cdu dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 10/09/2004, 15h36
  5. Recuperer les erreurs des requetes sql en asp
    Par emile13 dans le forum ASP
    Réponses: 3
    Dernier message: 01/04/2004, 13h49

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