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 :

Pilote MySQL manquant


Sujet :

Bases de données

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Pilote MySQL manquant
    Bonjour,
    Je suis sur linux et quand je compile mon programme pour utiliser ma base de donnée, ça me donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    QSqlDatabase: QMYSQL driver not loaded
    QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
    QSqlQuery::exec: database not open
    Echec de la requête
    QSqlError("", "Driver not loaded", "Driver not loaded")
    Voici le code de l'application
    le bdd.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
    #include "bdd.h"
    using namespace std;
    BDD::BDD()
    {
        bdd = QSqlDatabase::addDatabase("QMYSQL");
     
        // Définition des paramètres de connexion à la base de données
        bdd.setHostName("localhost"); // @ip serveur MySQL
        bdd.setDatabaseName("X"); // Nom de la base
        bdd.setUserName("X"); // Nom utilisateur
        bdd.setPassword("X"); // Mot de passe
        bdd.open();
        if (bdd.open())
        {
            QMessageBox::information(0, "Base de données", "Connexion réussie");
        }
        else
        {
            QMessageBox::critical(0, "Base de données",
                "Erreur de connexion : " + bdd.lastError().text());
        }
    }
    le bdd.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
    #ifndef BDD_H
    #define BDD_H
    #include <QtSql>
    #include <QApplication>
    #include <QVariant>
    #include <QString>
    #include <QMessageBox>
    #include <QDir>
    using namespace std;
     
    class BDD
    {
    private:
        QSqlDatabase bdd;
        QSqlQuery requete;
    public:
        BDD();
        ~BDD();
    };
     
    #endif // BDD_H
    le .pro

    Code qt-pro : 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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    QT       += core gui
     
    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
     
    TARGET = X
    TEMPLATE = app
    QT += sql
    QT += core
    # The following define makes your compiler emit warnings if you use
    # any feature of Qt which has been marked as deprecated (the exact warnings
    # depend on your compiler). Please consult the documentation of the
    # deprecated API in order to know how to port your code away from it.
    DEFINES += QT_DEPRECATED_WARNINGS
     
    # You can also make your code fail to compile if you use deprecated APIs.
    # In order to do so, uncomment the following line.
    # You can also select to disable deprecated APIs only up to a certain version of Qt.
    #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
     
    CONFIG += c++11
     
    SOURCES += \
            ajoute.cpp \
            bdd.cpp \
            main.cpp \
            mainwindow.cpp \
            outilaffichage.cpp \
            supprimere.cpp
     
    HEADERS += \
            ajoute.h \
            bdd.h \
            mainwindow.h \
            outilaffichage.h \
            supprimere.h
     
    FORMS += \
            ajoute.ui \
            mainwindow.ui \
            supprimere.ui
     
    # Default rules for deployment.
    qnx: target.path = /tmp/$${TARGET}/bin
    else: unix:!android: target.path = /opt/$${TARGET}/bin
    !isEmpty(target.path): INSTALLS += target

    le main.cpp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include "mainwindow.h"
    #include <QApplication>
     
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        MainWindow w;
        w.show();
     
        return a.exec();
    }
    Voila si quelqu'un a une idée...

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 617
    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 617
    Points : 188 585
    Points
    188 585
    Par défaut


    C'est un problème extrêmement courant. Regarde dans ce forum. En quelques mots : il faut compiler le pilote manquant (notamment installer la bibliothèque MySQL sur ton PC).
    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 !

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    J'ai essayer de voir à cette adresse : https://www.developpez.net/forums/d1...ntu-qt-5-10-a/
    Il dit qu'il faut compiler le mysql.pro mais je ne voit pas comment faire. Comment on le compile et quel pilote je doit compiler ?

  4. #4
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 617
    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 617
    Points : 188 585
    Points
    188 585
    Par défaut
    Tu dois d'abord télécharger les sources de Qt (l'installateur en ligne le permet). Ensuite, tu vas dans le dossier C:\Qt\5.13.0\Src\qtbase\src\plugins\sqldrivers\mysql (de mon côté, en tout cas), puis tu peux lancer les commandes qmake puis make (dans la console Qt : menu démarrer, Qt 5.13.0 (MinGW 7.3.0 64-bit)).

    Tu as tous les pilotes dans le dossier C:\Qt\5.13.0\Src\qtbase\src\plugins\sqldrivers\, puis tu prends le pilote MySQL (puisque tu veux utiliser MySQL). Finalement, c'est juste un projet Qt habituel à compiler. (Au lieu de lancer qmake puis make, tu pourrais utiliser Qt Creator.)

    Ensuite, il faut placer le fichier compilé (qmysql.dll, de mémoire) à côté des extensions de Qt (C:\Qt\5.13.0\mingw73_64\plugins\sqldrivers, chez moi).
    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 !

Discussions similaires

  1. Portabilité d'un projet Qt avec le pilote MySQL
    Par toams69 dans le forum Bases de données
    Réponses: 6
    Dernier message: 06/12/2009, 00h28
  2. Piloter mysql avec C
    Par Namson dans le forum C
    Réponses: 3
    Dernier message: 24/02/2009, 20h58
  3. Java et pilote MySQL
    Par adrian07 dans le forum JDBC
    Réponses: 1
    Dernier message: 26/06/2008, 01h20
  4. probleme de pilote MYSQL
    Par guchr dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 19/05/2007, 11h34

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