Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. French
  4. la base de bonne sur qt
Forum Updated to NodeBB v4.3 + New Features

la base de bonne sur qt

Scheduled Pinned Locked Moved Solved French
29 Posts 2 Posters 7.1k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • FortigaF Offline
    FortigaF Offline
    Fortiga
    wrote on last edited by Fortiga
    #1

    Bonjour tout le monde !
    je suis sur une petite application de test et d'évaluation
    je voudrais ouvrier la base de données
    base 1.jpg

    j’aimerais que quand je lance mon application qu'il m'affiche les listes de base de bonne enregistre
    et si c'est vide il écrire par exemple AUNCUN BASE DE BONNES TROUVE

    AIDE MOI SVP

    code backen.cpp

    
    #include "backend.h"
    #include <QMetaObject>
    
    Backend::Backend(QObject *parent)
        : QObject{parent}
    {
        if(!OnConnexion())
        {
            qDebug() << QString::fromUtf8("Impossible de se connecte au base de donnees !");
            return;
        }
        else
        {
    
        }
    }
    
    void Backend::onGetNameSearch(QString Name)
    {
        qDebug() << Name;
    }
    bool Backend::OnConnexion()
    {
        db = QSqlDatabase::addDatabase("QSQLITE");
        db.setHostName("YM");
        db.setDatabaseName("DS-DATABASE");
        db.setPort('8888');
        db.setUserName("JOJO");
        db.setPassword("2021");
    
        if(db.open())
        {
            qDebug() << QString::fromUtf8("CONNECTE");
            QSqlQuery query("SELECT ");
            while (query.isActive()) {
                QString country = query.value(0).toString();
                qDebug() << QString::fromUtf8("tjhutfrujf");
            }
    
            return true;
    
        }
        else
        {
            qDebug() << QString::fromUtf8("ECHOUE");
            return false;
        }
        return false;
    }
    
    
    

    Juste pour aller de l'avant et apprendre des choses, lorsque vous voulez devenir une légende, cela ne se fait pas du jour au lendemain.

    1 Reply Last reply
    0
    • FortigaF Fortiga

      @SGaist Merci pour votre réponse 😊
      Une dernière question
      Dans mon code je peux pas définir le nom de la base de données

      #include "qsqldatabase.h"
      
      #include <QApplication>
      #include <QMessageBox>
      
      int main(int argc, char *argv[])
      {
          QApplication a(argc, argv);
      
          QMessageBox message;
          QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL" , "DATABASE");
          db.setHostName("localhost");
          db.setDatabaseName("test");
          db.setUserName("WinAdmin");
          db.setPassword("MySQL@2022");
          bool ok = db.open();
          QString ad = db.databaseName();
          QString fr = db.connectionName();
          if(ok)
          {
              message.information(nullptr, "Message", "Base de bonne charger");
              message.information(nullptr, fr, ad);
      
          }
          else
          {
              message.critical(nullptr, "erreur", "Impossible d'ouvrire");
      
          }
      

      Ça m'affiche des erreurs genre
      er.jpg

      Mais si j'efface

      
      #include "qsqldatabase.h"
      
      #include <QApplication>
      #include <QMessageBox>
      
      int main(int argc, char *argv[])
      {
          QApplication a(argc, argv);
      
          QMessageBox message;
          QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL" , DATABASE");
          db.setHostName("localhost");
          //db.setDatabaseName("test");
          db.setUserName("WinAdmin");
          db.setPassword("MySQL@2022");
          bool ok = db.open();
          QString ad = db.databaseName();
          QString fr = db.connectionName();
          if(ok)
          {
              message.information(nullptr, "Message", "Base de bonne charger");
              message.information(nullptr, fr, ad);
      
          }
          else
          {
              message.critical(nullptr, "erreur", "Impossible d'ouvrire");
      
          }
      
      
          return a.exec();
      }
      
      

      Ça marche
      Je pige pas

      SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #28

      Est-ce qu'il y a réellement une base de donnée nommée test ?
      Est-ce que l'utilisateur y a accès ?
      Est-ce que l'utilisateur y a accès en passant par localhost ?

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      FortigaF 1 Reply Last reply
      0
      • SGaistS Offline
        SGaistS Offline
        SGaist
        Lifetime Qt Champion
        wrote on last edited by
        #2

        Bonsoir,

        SQLite est une base de donnée basée sur un fichier. C'est un peu étrange de voir des paramètres qui semblent correspondre à une base de données réseau.

        Il y a cet article du wiki qui peut également aider ce projet.

        Interested in AI ? www.idiap.ch
        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

        FortigaF 1 Reply Last reply
        0
        • SGaistS SGaist

          Bonsoir,

          SQLite est une base de donnée basée sur un fichier. C'est un peu étrange de voir des paramètres qui semblent correspondre à une base de données réseau.

          Il y a cet article du wiki qui peut également aider ce projet.

          FortigaF Offline
          FortigaF Offline
          Fortiga
          wrote on last edited by
          #3

          @SGaist merci pour votre réponse

          En fait je viens de regle le problème

          void Backend::onConnexion()
          {
          QSqlDatabase sqlDb = QSqlDatabase::addDatabase("MySQL", "test-wikilivres");
          sqlDb.setHostName("localhost");
          sqlDb.setUserName("wikilivres");
          sqlDb.setPassword("mot-de-passe-secret");
          sqlDb.setDatabaseName("wikilivres");
          if (sqlDb.open())
          {
              qDebug()<<  QString::fromUtf8(("La base de données a bien été chargée !"), 5000);
          }
          
          else
          {
              qDebug()<<  QString::fromUtf8("Échec de connexion") + (" ") + sqlDb.lastError().text() + tr(".");
          }
          
          }
          

          mais na ne marche pas, il affiche

          QSqlDatabase: MySQL driver not loaded
          QSqlDatabase: available drivers: QSQLITE QODBC QPSQL
          "Échec de connexion Driver not loaded Driver not loaded."

          Juste pour aller de l'avant et apprendre des choses, lorsque vous voulez devenir une légende, cela ne se fait pas du jour au lendemain.

          SGaistS 1 Reply Last reply
          0
          • FortigaF Fortiga

            @SGaist merci pour votre réponse

            En fait je viens de regle le problème

            void Backend::onConnexion()
            {
            QSqlDatabase sqlDb = QSqlDatabase::addDatabase("MySQL", "test-wikilivres");
            sqlDb.setHostName("localhost");
            sqlDb.setUserName("wikilivres");
            sqlDb.setPassword("mot-de-passe-secret");
            sqlDb.setDatabaseName("wikilivres");
            if (sqlDb.open())
            {
                qDebug()<<  QString::fromUtf8(("La base de données a bien été chargée !"), 5000);
            }
            
            else
            {
                qDebug()<<  QString::fromUtf8("Échec de connexion") + (" ") + sqlDb.lastError().text() + tr(".");
            }
            
            }
            

            mais na ne marche pas, il affiche

            QSqlDatabase: MySQL driver not loaded
            QSqlDatabase: available drivers: QSQLITE QODBC QPSQL
            "Échec de connexion Driver not loaded Driver not loaded."

            SGaistS Offline
            SGaistS Offline
            SGaist
            Lifetime Qt Champion
            wrote on last edited by
            #4

            Il faut compiler le driver MySQL soi-même. Le changement de license d'Oracle pour MySQL empêche la distribution du plugin précompilé.

            Interested in AI ? www.idiap.ch
            Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

            FortigaF 1 Reply Last reply
            0
            • SGaistS SGaist

              Il faut compiler le driver MySQL soi-même. Le changement de license d'Oracle pour MySQL empêche la distribution du plugin précompilé.

              FortigaF Offline
              FortigaF Offline
              Fortiga
              wrote on last edited by
              #5

              @SGaist Bonjour et merci pour votre réponse
              En fait je n'arrive pas du tout, je même change de qt 6.4 à 6.6
              mais le Problème est toujours là, j'ai suivi le tutoriel de qt sql

              sdl.jpg
              bien sur j'ai modifie le chemin

              Juste pour aller de l'avant et apprendre des choses, lorsque vous voulez devenir une légende, cela ne se fait pas du jour au lendemain.

              SGaistS 1 Reply Last reply
              0
              • FortigaF Fortiga

                @SGaist Bonjour et merci pour votre réponse
                En fait je n'arrive pas du tout, je même change de qt 6.4 à 6.6
                mais le Problème est toujours là, j'ai suivi le tutoriel de qt sql

                sdl.jpg
                bien sur j'ai modifie le chemin

                SGaistS Offline
                SGaistS Offline
                SGaist
                Lifetime Qt Champion
                wrote on last edited by
                #6

                @Fortiga et en utilisant le chemin complet vers qt-cmake ?

                Interested in AI ? www.idiap.ch
                Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                FortigaF 1 Reply Last reply
                0
                • SGaistS SGaist

                  @Fortiga et en utilisant le chemin complet vers qt-cmake ?

                  FortigaF Offline
                  FortigaF Offline
                  Fortiga
                  wrote on last edited by Fortiga
                  #7

                  @SGaist merci pour votre réponse 🙂
                  J'ai bien reçu a compilé mais toujours rien

                  Juste pour aller de l'avant et apprendre des choses, lorsque vous voulez devenir une légende, cela ne se fait pas du jour au lendemain.

                  SGaistS 1 Reply Last reply
                  0
                  • FortigaF Fortiga

                    @SGaist merci pour votre réponse 🙂
                    J'ai bien reçu a compilé mais toujours rien

                    SGaistS Offline
                    SGaistS Offline
                    SGaist
                    Lifetime Qt Champion
                    wrote on last edited by
                    #8

                    Qu'est-ce que "toujours rien" ? La même erreur à la compilation ? Une autre erreur ?

                    Interested in AI ? www.idiap.ch
                    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                    FortigaF 1 Reply Last reply
                    0
                    • SGaistS SGaist

                      Qu'est-ce que "toujours rien" ? La même erreur à la compilation ? Une autre erreur ?

                      FortigaF Offline
                      FortigaF Offline
                      Fortiga
                      wrote on last edited by Fortiga
                      #9

                      @SGaist Non tout semble bien terminé il m'a afficher aucun erreur.
                      Mais quand je compilé le programme il a aucun différence il m'affiche

                      QSqlDatabase: MySQL driver not loaded
                      QSqlDatabase: available drivers: QSQLITE QODBC QPSQL
                      "Échec de connexion Driver not loaded Driver not loaded."
                      

                      Rien a changé

                      Juste pour aller de l'avant et apprendre des choses, lorsque vous voulez devenir une légende, cela ne se fait pas du jour au lendemain.

                      SGaistS 1 Reply Last reply
                      0
                      • FortigaF Fortiga

                        @SGaist Non tout semble bien terminé il m'a afficher aucun erreur.
                        Mais quand je compilé le programme il a aucun différence il m'affiche

                        QSqlDatabase: MySQL driver not loaded
                        QSqlDatabase: available drivers: QSQLITE QODBC QPSQL
                        "Échec de connexion Driver not loaded Driver not loaded."
                        

                        Rien a changé

                        SGaistS Offline
                        SGaistS Offline
                        SGaist
                        Lifetime Qt Champion
                        wrote on last edited by
                        #10

                        @Fortiga est-ce que le plugin a été installé avec les autres ?

                        Interested in AI ? www.idiap.ch
                        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                        FortigaF 1 Reply Last reply
                        0
                        • SGaistS SGaist

                          @Fortiga est-ce que le plugin a été installé avec les autres ?

                          FortigaF Offline
                          FortigaF Offline
                          Fortiga
                          wrote on last edited by Fortiga
                          #11

                          @SGaist merci pour votre réponse ☺️
                          Enfaite je sais pas trop mais j'ai suivie le tutoriel et j'ai tout terminé mais le problème n'a pas changé.
                          J'ai le fichier qsqlmysql.dll sur

                          C:/Qt/6.6.0/src/windows/plugins/sqldrivers/qsqlmysql.dll
                          

                          Est-ce que je dois faire encore ?

                          Juste pour aller de l'avant et apprendre des choses, lorsque vous voulez devenir une légende, cela ne se fait pas du jour au lendemain.

                          SGaistS 1 Reply Last reply
                          0
                          • FortigaF Fortiga

                            @SGaist merci pour votre réponse ☺️
                            Enfaite je sais pas trop mais j'ai suivie le tutoriel et j'ai tout terminé mais le problème n'a pas changé.
                            J'ai le fichier qsqlmysql.dll sur

                            C:/Qt/6.6.0/src/windows/plugins/sqldrivers/qsqlmysql.dll
                            

                            Est-ce que je dois faire encore ?

                            SGaistS Offline
                            SGaistS Offline
                            SGaist
                            Lifetime Qt Champion
                            wrote on last edited by
                            #12

                            Est-ce que la librairie client de MySQL est trouvable au travers de la variable d'environnement PATH ? Celle-ci peut être modifiée dans Qt Creator, dans les paramètres d'exécution du projet.

                            Dans tous les cas, démarrer l'application avec la variable d'environnement QT_DEBUG_PLUGINS à 1 permet d'avoir plus d'information sur ce qui se passe.

                            Interested in AI ? www.idiap.ch
                            Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                            FortigaF 1 Reply Last reply
                            0
                            • SGaistS SGaist

                              Est-ce que la librairie client de MySQL est trouvable au travers de la variable d'environnement PATH ? Celle-ci peut être modifiée dans Qt Creator, dans les paramètres d'exécution du projet.

                              Dans tous les cas, démarrer l'application avec la variable d'environnement QT_DEBUG_PLUGINS à 1 permet d'avoir plus d'information sur ce qui se passe.

                              FortigaF Offline
                              FortigaF Offline
                              Fortiga
                              wrote on last edited by Fortiga
                              #13

                              @SGaist Merci pour votre réponse
                              Il m'affiche plusieurs infos mais c'est ça qui nous intéresse non

                              qt.core.plugin.factoryloader: Got keys from plugin méta data Qlist("QPSQL")
                              qt.core.plugin.factoryloader: checking directory Pathé "A:/Qt-Projet/build-Pd-Desktop_Qt_6_6_0_MinGW_64_bit-Debug/debug/sqldrivers" ...
                              
                              QSqlDatabase: QMYSQL driver loaded 
                              QSqlDatabase :available drivers: QSLITE QMIMER QODBC QPSQL
                              

                              Mais si je copie le dll

                              C:/Qt/6.6.0/src/windows/plugins/sqldrivers/qsqlmysql.dll
                              

                              sur

                              C:\Qt\6.6.0\mingw_64\plugins\sqldrivers
                              

                              ça m'affiche

                              qt.core.plugin.factoryloader: Got keys from plugin meta data QList("QPSQL")
                              qt.core.plugin.factoryloader: checking directory path "A:/Qt-Projet/build-Pd-Desktop_Qt_6_6_0_MinGW_64_bit-Debug/debug/sqldrivers" ...
                              qt.core.library: "C:/Qt/6.6.0/mingw_64/plugins/sqldrivers/qsqlmysql.dll" cannot load: Impossible de charger la bibliothèque C:\Qt\6.6.0\mingw_64\plugins\sqldrivers\qsqlmysql.dll : %1 n’est pas une application Win32 valide.
                              qt.core.plugin.loader: QLibraryPrivate::loadPlugin failed on "C:/Qt/6.6.0/mingw_64/plugins/sqldrivers/qsqlmysql.dll" : "Impossible de charger la bibliothèque C:\\Qt\\6.6.0\\mingw_64\\plugins\\sqldrivers\\qsqlmysql.dll : %1 n’est pas une application Win32 valide."
                              QSqlDatabase: QMYSQL driver not loaded
                              QSqlDatabase: available drivers: QSQLITE QMIMER QMARIADB QMYSQL QODBC QPSQL
                              

                              Merci

                              Juste pour aller de l'avant et apprendre des choses, lorsque vous voulez devenir une légende, cela ne se fait pas du jour au lendemain.

                              1 Reply Last reply
                              0
                              • SGaistS Offline
                                SGaistS Offline
                                SGaist
                                Lifetime Qt Champion
                                wrote on last edited by
                                #14

                                C'est cette étape de copie qui manquait.

                                Il faut compiler le plugin pour debug et release et les copier ensuite.

                                Interested in AI ? www.idiap.ch
                                Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                FortigaF 1 Reply Last reply
                                0
                                • SGaistS SGaist

                                  C'est cette étape de copie qui manquait.

                                  Il faut compiler le plugin pour debug et release et les copier ensuite.

                                  FortigaF Offline
                                  FortigaF Offline
                                  Fortiga
                                  wrote on last edited by
                                  #15

                                  @SGaist merci pour votre reponse
                                  d.jpg

                                  j'ai suivi le tutoriel sur doc qt

                                  Juste pour aller de l'avant et apprendre des choses, lorsque vous voulez devenir une légende, cela ne se fait pas du jour au lendemain.

                                  SGaistS 1 Reply Last reply
                                  0
                                  • FortigaF Fortiga

                                    @SGaist merci pour votre reponse
                                    d.jpg

                                    j'ai suivi le tutoriel sur doc qt

                                    SGaistS Offline
                                    SGaistS Offline
                                    SGaist
                                    Lifetime Qt Champion
                                    wrote on last edited by
                                    #16

                                    Ce sont les instructions pour Qt 5. Il faut suivre celles pour Qt 6.

                                    Interested in AI ? www.idiap.ch
                                    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                    FortigaF 1 Reply Last reply
                                    0
                                    • SGaistS SGaist

                                      Ce sont les instructions pour Qt 5. Il faut suivre celles pour Qt 6.

                                      FortigaF Offline
                                      FortigaF Offline
                                      Fortiga
                                      wrote on last edited by
                                      #17

                                      @SGaist Non, je me suis trompé. C'est la version 6 que j'ai suivie.

                                      Juste pour aller de l'avant et apprendre des choses, lorsque vous voulez devenir une légende, cela ne se fait pas du jour au lendemain.

                                      1 Reply Last reply
                                      0
                                      • SGaistS Offline
                                        SGaistS Offline
                                        SGaist
                                        Lifetime Qt Champion
                                        wrote on last edited by
                                        #18

                                        Pour autant que je me souvienne correctement, cmake ne fait pas les deux compilations en même temps.

                                        Pour assurer de tout avoir, je recommande de faire un second build avec -DCMAKE_BUILD_TYPE=Debug ajouté lors de la configuration.

                                        Interested in AI ? www.idiap.ch
                                        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                        FortigaF 1 Reply Last reply
                                        0
                                        • SGaistS SGaist

                                          Pour autant que je me souvienne correctement, cmake ne fait pas les deux compilations en même temps.

                                          Pour assurer de tout avoir, je recommande de faire un second build avec -DCMAKE_BUILD_TYPE=Debug ajouté lors de la configuration.

                                          FortigaF Offline
                                          FortigaF Offline
                                          Fortiga
                                          wrote on last edited by
                                          #19

                                          @SGaist En fait je viens de tout recommence
                                          d.jpg

                                          et c'est énervent

                                          Juste pour aller de l'avant et apprendre des choses, lorsque vous voulez devenir une légende, cela ne se fait pas du jour au lendemain.

                                          SGaistS 1 Reply Last reply
                                          0
                                          • FortigaF Fortiga

                                            @SGaist En fait je viens de tout recommence
                                            d.jpg

                                            et c'est énervent

                                            SGaistS Offline
                                            SGaistS Offline
                                            SGaist
                                            Lifetime Qt Champion
                                            wrote on last edited by
                                            #20

                                            @Fortiga il faut le faire depuis un répertoire en dehors des sources. Et il ne semble pas y avoir de spécification pour le type de build.

                                            Interested in AI ? www.idiap.ch
                                            Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                            FortigaF 1 Reply Last reply
                                            0

                                            • Login

                                            • Login or register to search.
                                            • First post
                                              Last post
                                            0
                                            • Categories
                                            • Recent
                                            • Tags
                                            • Popular
                                            • Users
                                            • Groups
                                            • Search
                                            • Get Qt Extensions
                                            • Unsolved