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.7k 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.
  • 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
                  • SGaistS SGaist

                    @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.

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

                    @SGaist merci pour votre réponse
                    Enfaite j'ai tout récompense a zéro et je l'ai terminé mais cette fois j'ai copié libmysql.dll sur

                    C:/Qt/6.6.0/mingw_64/bin
                    

                    Et le programme à compilé sans erreur, mais il m'affiche
                    d.jpg

                    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 j'ai tout récompense a zéro et je l'ai terminé mais cette fois j'ai copié libmysql.dll sur

                      C:/Qt/6.6.0/mingw_64/bin
                      

                      Et le programme à compilé sans erreur, mais il m'affiche
                      d.jpg

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

                      Ce flot de message est des plus surprenants...

                      Est-ce qu'il se passe la même chose avec une application minimal qui se contente de se connecter à la base de donnée ?

                      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 flot de message est des plus surprenants...

                        Est-ce qu'il se passe la même chose avec une application minimal qui se contente de se connecter à la base de donnée ?

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

                        @SGaist Merci pour votre réponse
                        Le voici ça m'a surpris

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

                        message.jpg

                        C:/Qt/6.6.0/mingw_64/include/QtCore/qmetatype.h\u0000qRegisterNormalizedMetaType was called with a not normalized type name, please call qRegisterMetaType instead
                        

                        Je crois que le problème viens de la

                        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
                          Le voici ça m'a surpris

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

                          message.jpg

                          C:/Qt/6.6.0/mingw_64/include/QtCore/qmetatype.h\u0000qRegisterNormalizedMetaType was called with a not normalized type name, please call qRegisterMetaType instead
                          

                          Je crois que le problème viens de la

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

                          @Fortiga said in la base de bonne sur qt:

                          @SGaist Merci pour votre réponse
                          Le voici ça m'a surpris

                          
                          

                          Je crois que le problème viens de la

                          Cette fois-ci, il manque des données :-D

                          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 said in la base de bonne sur qt:

                            @SGaist Merci pour votre réponse
                            Le voici ça m'a surpris

                            
                            

                            Je crois que le problème viens de la

                            Cette fois-ci, il manque des données :-D

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

                            @SGaist désolé j'avais eu un problème de connexion
                            Sinon je viens de corriger, sur cpp ça marche mais pas sur qml

                            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 désolé j'avais eu un problème de connexion
                              Sinon je viens de corriger, sur cpp ça marche mais pas sur qml

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

                              QML n'a pas d'accès direct pour les bases de données. Par contre ce qu'il est possible de faire est de créer un model basé sur QSqlTableModel par example pour accéder aux tables nécessaire. Mais cela dépend de ce que doit faire la partie QML.

                              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

                                QML n'a pas d'accès direct pour les bases de données. Par contre ce qu'il est possible de faire est de créer un model basé sur QSqlTableModel par example pour accéder aux tables nécessaire. Mais cela dépend de ce que doit faire la partie QML.

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

                                @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

                                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 😊
                                  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 SGaist

                                    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 ?

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

                                    @SGaist non
                                    c'était cela le problème.
                                    merci infiniment

                                    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 has marked this topic as solved on

                                    • Login

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