Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Tuto] Utiliser les bases de données MySQL avec Qt

    4 janvier 2011 à 19:23:59

    Bonsoir à tous, ;)

    J'ai décidé de me lancer dans la rédaction d'un big tuto concernant l'utilisation de MySQL dans des programmes utilisant Qt.

    Au programme j'ai prévu de parler de l'installation d'une base de donnée locale, de la compilation du driver MySQL et bien entendu d'apprendre à utiliser les classes du module SQL de Qt.

    Au sujet du plan , je suis actuellement entrain de le construire , je vous le soumettrais très prochainement.

    J'aimerais donc savoir votre avis pour un tel tutoriel ou si vous avez des suggestions à me faire.
    • Partager sur Facebook
    • Partager sur Twitter
      9 janvier 2011 à 2:29:33

      Ya déjà un tuto qui parle de SQL avec Qt -> ici
      Le tien à l'air plus précis mais je suis pas sûr qu'il en vaille vraiment la peine...
      • Partager sur Facebook
      • Partager sur Twitter
        9 janvier 2011 à 13:13:24

        Citation

        Ya déjà un tuto qui parle de SQL avec Qt -> ici Le tien à l'air plus précis mais je suis pas sûr qu'il en vaille vraiment la peine... ">



        J'étais conscient qu'il existait un tutoriel, mais mon tutoriel sera beaucoup plus complet, sinon je n'aurais pas commencé sa rédaction.
        Voici des points que je vais parler.

        • Installation d'une base de donnée avec MySQL Community Server
        • Installation & Compilation du driver MySQL
        • Apprendre à utiliser le module QtSQL

        Concernant le module QtSQL, je parlerais sur les classes suivantes :
        • QSqlDatabase
        • QSqlError
        • QSqlField
        • QSqlIndex
        • QSqlQuery
        • QSqlQueryModel
        • QSqlRelation, QSqlRelationalDelegate, QSqlRelationalTableModel
        • QSqlTableModel


        Vous pensez que ce tutoriel sera utile ou non ? J'aurais du en effet poser cette question avant.
        • Partager sur Facebook
        • Partager sur Twitter
          9 janvier 2011 à 19:06:42

          Moi je suis pour , c'est surtout la partie sur la compilation du plugin qui n'est pas du tout abordé dans le tuto cité au dessus
          • Partager sur Facebook
          • Partager sur Twitter
            8 mai 2011 à 15:32:31

            Pour, à 100 % !

            Je me souvient que quand j'ai voulu faire mumuse avec SDL, je suis (logiquement) passé par MySQL, puis j'ai voulu aller plus loin en intégrant ça a Qt et là ... galère :( .
            Trouver comment utiliser MySQL avec Qt sur Internet, c'est facile. Trouver deux infos concordantes, ça, c'est vraiment raide. J'ai galérer pendant des jours comme un chien :p .

            Donc un bon petit tuto dédié à ce sujet, une super idée, je suis derrière toi a fond !
            • Partager sur Facebook
            • Partager sur Twitter
              18 octobre 2011 à 20:06:56

              Moi je suis pour !
              Ayant lus le tutoriel existant sur QtSql en une demi-journée
              Je le trouve un peut trop court.
              Ainsi ce big tuto m’intéresse grandement.
              Timiti29
              • Partager sur Facebook
              • Partager sur Twitter
              DUT Réseau & Télécommunication et Licence Professionnelle Réseau Sans-Fil et Sécurité
                18 octobre 2011 à 21:58:54

                POUR ! J'attends depuis longtemps un tuto plus complet sur le sujet !

                Go go go go !
                • Partager sur Facebook
                • Partager sur Twitter
                  25 janvier 2012 à 13:39:37

                  des nouvelles du super tuto ?
                  • Partager sur Facebook
                  • Partager sur Twitter
                    25 janvier 2012 à 17:23:57

                    Citation

                    des nouvelles du super tuto ?


                    Bonjour, :)

                    Actuellement le tutoriel n'a pas beaucoup avancé, étant donnée que le peu de mon temps libre, je le consacre surtout pour un projet.
                    Néanmoins ça veut pas dire que j'abandonne sa rédaction mais juste que ça avance plutôt lentement en ce moment.

                    • Partager sur Facebook
                    • Partager sur Twitter
                      26 janvier 2012 à 2:05:54

                      Super ! En tout cas j'ai hâte qu'il paraisse, parce que rien que pour le "driver" c'est devenu la misère, les tutoriaux ne sont plus adaptés (plus de dossier opt dans le dossier lib de MySql par exemple) Mais ne vous pressez pas non plus, il ne faudrait pas qu'il soit bâclé ;)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        28 février 2012 à 20:11:57

                        Bonsoir!

                        Désolé de faire la personne pressée, mais j'aurais souhaité savoir où en était le tutoriel car il se trouve qu'en ce moment je désespéré pour pouvoir lié Qt et mySQL!

                        Serait-il possible d'en avoir un avant goût si cela n'est pas trop demandé car je ne vois vraiment pas comment m'y prendre et on trouve 1000 façons sur internet et très peu qui fonctionnent réellement (en tout cas chez moi...)

                        Donc si c'était possible d'avoir des nouvelles! :)

                        Merci!
                        • Partager sur Facebook
                        • Partager sur Twitter
                          28 février 2012 à 20:51:31

                          Bonsoir,

                          Mettre un avant goût m'est impossible en ce moment, comme je l'ai dit dans mon dernier poste, le tutoriel avance lentement car je travaille actuellement sur un projet.
                          Le temps me fait souvent défaut, mais quant j'ai le temps, j'avance le tutoriel.
                          De plus, une partie que j'avais écris doit être mise à jour avec la derniere update de Qt.
                          Lorsque l'avancement du tutoriel le permettra, je le mettrais bien évidement en beta.

                          Mais actuellement, si tu as des problème avec Qt et MySQL, je peux seulement te conseiller de te diriger sur le forum "C++". Là d'autre personne tout comme moi pourront t'aider à résoudre ton problème. ;)
                          • Partager sur Facebook
                          • Partager sur Twitter
                            30 mai 2012 à 11:23:31

                            Salut,on attend toujours!
                            • Partager sur Facebook
                            • Partager sur Twitter
                              4 juin 2012 à 20:26:41

                              Oui, Je suis presser d'avoir ce tutoriels, car je n'en trouve pas.
                              Merci à tous.
                              timiti29
                              • Partager sur Facebook
                              • Partager sur Twitter
                              DUT Réseau & Télécommunication et Licence Professionnelle Réseau Sans-Fil et Sécurité
                                4 juillet 2012 à 16:49:46

                                Reussi!

                                Pour ceux que ça intéresse, voici ce que j'ai fais:

                                • installer Qt dans le répertoire C:/programmation avec l'installeur Online en ajoutant les sources
                                • Installer MySQL en installation personnalisée pour avoir les sources et cocher la case permettant d'ajouter les variables au PATH(je l'ai fait avec MySQL-5.1.35-win32.msi)
                                • Paramétrer les options de serveur de MySQL si vous souhaitez vous connecter en localhost
                                • La suite se passe dans le prompt de Qt
                                • cd \Programmation\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql\
                                • qmake "INCLUDEPATH+=C:\\Programmation\\MySQL\\include" "LIBS+=C:\\Programmation\\MySQL\\lib\\opt\\libmysql.lib" -o Makefile mysql.pro "CONFIG+=release"
                                • mingw32-make
                                • mingw32-make release-install
                                • répeter les 3 dernières lignes en remplaçant release par debug
                                • créer un répertoire sqldrivers dans le répertoire de votre éxécutable
                                • récupérer les dll créées dans:
                                  • C:\Programmation\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql\release\qsqlmysql4.dll
                                  • C:\Programmation\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql\debug\qsqlmysqld4.dll
                                  • C:\Programmation\MySQL\lib\opt\libmysql.dll
                                  • placez-les comme suit:
                                    • projet
                                      • debug
                                        • sqldrivers
                                          • qsqlmysql4d.dll
                                        • projet.exe
                                        • libmysql.dll
                                        • QtCore4d.dll
                                        • QtGui4d.dll
                                        • ...
                                      • release
                                        • sqldrivers
                                          • qsqlmysql4.dll
                                        • projet.exe
                                        • libmysql.dll
                                        • QtCore4.dll
                                        • QtGui4.dll
                                        • ...
                                      • projet.pro
                                      • main.cpp
                                      • ...


                                Je ne pense pas en avoir oublier... :honte:


                                [Edit:] J'ai rajouté quelle dll il fallait copier et où les placer.
                                Il ne vous reste plus qu'a coder...
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  11 juillet 2012 à 9:24:27

                                  Merci pour ce petit tuto d'installation, j’essayerais de l'installer cette semaine et je vous tiens au courant ;)
                                  timiti29
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  DUT Réseau & Télécommunication et Licence Professionnelle Réseau Sans-Fil et Sécurité
                                    15 décembre 2012 à 7:06:51

                                    Salut,rien de consistant pour QSql sur le web,on l'attend avec impatience ce tuto
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Anonyme
                                      10 juillet 2013 à 0:07:40

                                      Je l'attends toujours ce tuto !
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        28 août 2013 à 19:19:07

                                        on continue à se demander à quand la venue du tuto?

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          6 septembre 2013 à 18:42:59

                                          je bloque ici

                                          • mingw32-make

                                          "mingw32-make" n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commande,

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            9 septembre 2013 à 20:14:44

                                            Salut,

                                            Soit tu n'as pas mingw d'installé ou sinon il n'est pas ajouté à tes variables d'environnement.

                                            Pour celà: Ouvre Ordinateur -> clique droit dans l'espace blanc -> propriété -> Paramètres système avancés -> Variables d'environnement -> Tu doubles-clique sur PATH et tu ajoutes à la fin, après un ";" le chemin vers l'exe de Mingw. Par exemple sur mon ordi c'est: C:\Programmation\MinGW\bin (Le chemin finira systématiquement par bin).

                                            En espérant t'avoir aidé!

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              22 avril 2014 à 14:42:37

                                              Bonjour....

                                              J'essai tant bien que mal de suivre ce tuto ici

                                              Mais impossible de me connecter.

                                              Au moment d'executer j'ai des erreur avec 

                                              db.setHostName("localhost");

                                              db.setUserName("root");

                                              db.setPassword("");

                                              db.setDatabaseName("tuto");

                                              'db' does not name a type


                                              D'ou viens l'erreur ??

                                              Merci

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                3 mai 2014 à 21:05:40

                                                Bonjour SKAMER

                                                merci pour ton idée de créer ce tuto

                                                Mais j pense que tu ne veux pas vraiment faire ce tuto , moi ça fait 3 ans que j'attend ce tuto mais toujours rien

                                                Alors dis nous si tu le ferra un jours

                                                Nous sommes des milliers à attendre ton tuto .

                                                Dis nous ce qu'on peux faire pour t'aiderf à le faire.

                                                Merci et si possible , laises nous ton adresse complet.

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  6 mai 2014 à 20:32:03

                                                  Avec Qt 5.2.1 Pour ceux qui veulent aller plus vite


                                                  Dans le prompt de Qt

                                                  cd C:\Qt\Qt5.2.1\5.2.1\Src\qtbase\src\plugins\sqldrivers\mysql\

                                                  qmake "INCLUDEPATH+=C:\\Qt\\MySql" "LIBS+=C:\\Qt\\MySql\\libmysql.lib" -o Makefile mysql.pro "CONFIG+=release"

                                                  mingw32-make

                                                  mingw32-make release-install

                                                  qmake "INCLUDEPATH+=C:\\Qt\\MySql" "LIBS+=C:\\Qt\\MySql\\libmysql.lib" -o Makefile mysql.pro

                                                  "CONFIG+=release"

                                                  mingw32-make

                                                  mingw32-make debug-install

                                                  Les DLLs sont générés ici -> C:\Qt\Qt5.2.1\5.2.1\mingw48_32\plugins\sqldrivers

                                                  Maintenant que le plugin QMYSQL est correctement compilé, il faut judicieusement placer les DLL dans le répertoire du projet.

                                                  Tout d'abord, créer un dossier sqldrivers dans le répertoire de votre exécutable, puis y placer la DLL correspondant au mode de compilation (debug ou release) qui se trouve dans [Chemin vers Qt]\plugins\sqldrivers. Elle s'appellera qsqlmysql4d.dll si en débogage et qsqlmysql4.dll sinon.

                                                  Ensuite, revenir au répertoire où se situe l'exécutable et y placer la DLL libmysql.dll de [Chemin vers MySQL]\lib.

                                                  Voici un petit récapitulatif de la hiérarchie du projet :

                                                  En mode de débogage

                                                  En release

                                                  • projet
                                                    • debug
                                                      • sqldrivers
                                                        • qsqlmysql4d.dll
                                                      • projet.exe
                                                      • libmysql.dll
                                                      • QtCore4d.dll
                                                      • QtGui4d.dll
                                                      • ...
                                                    • projet.pro
                                                    • main.cpp
                                                    • ...
                                                  • projet
                                                    • release
                                                      • sqldrivers
                                                        • qsqlmysql4.dll
                                                      • projet.exe
                                                      • libmysql.dll
                                                      • QtCore4.dll
                                                      • QtGui4.dll
                                                      • ...
                                                    • projet.pro
                                                    • main.cpp
                                                    • ...

                                                  -
                                                  Edité par isak25 6 mai 2014 à 20:50:45

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    3 décembre 2014 à 18:45:56

                                                    Il dit qu'il va faire un tuto mais 3 ans ça lui suffit pas...
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                    Quand tu écris un code qui marche pas, pense « l'ordi fait ce que tu lui demande ». alors qu'a tu bien pu lui demander ?
                                                      23 juin 2015 à 18:39:02

                                                      salut 

                                                      j'arrive pas à connecter ma base de données (mysql) à Qt5.4 (mon systéme d'exploitation windows8.1) car j'ai pa pu construire les fichier dll de drivers 

                                                      voilà mon bash 

                                                      C :> cd C:\Qt\5.4\Src\qtbase\src\plugins\sqldrivers\mysql
                                                      qmake "INCLUDEPATH+= C:\mysql\include" "LIBS+=C:\mysql\lib\libmysql.lib" mysql.pro
                                                      mingw32-make -f Makefile.Debug
                                                      mingw32-make -f Makefile.Release
                                                      

                                                      et voilà le msg d'erreur affiché :

                                                      C:\Qt\5.4\Src\qtbase\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsq
                                                      l_mysql.cpp:1512: undefined reference to `mysql_real_escape_string@16'
                                                      collect2.exe: error: ld returned 1 exit status
                                                      Makefile.Debug:81: recipe for target '..\..\..\..\plugins\sqldrivers\qsqlmysqld.
                                                      dll' failed
                                                      mingw32-make: *** [..\..\..\..\plugins\sqldrivers\qsqlmysqld.dll] Error 1

                                                      i need ur help pleeeeeeeeeeeeeeaaaaase  :'( :'( 

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        1 mai 2016 à 18:24:50

                                                        isak25 a écrit:

                                                        Avec Qt 5.2.1 Pour ceux qui veulent aller plus vite


                                                        Dans le prompt de Qt

                                                        cd C:\Qt\Qt5.2.1\5.2.1\Src\qtbase\src\plugins\sqldrivers\mysql\

                                                        qmake "INCLUDEPATH+=C:\\Qt\\MySql" "LIBS+=C:\\Qt\\MySql\\libmysql.lib" -o Makefile mysql.pro "CONFIG+=release"

                                                        mingw32-make

                                                        mingw32-make release-install

                                                        qmake "INCLUDEPATH+=C:\\Qt\\MySql" "LIBS+=C:\\Qt\\MySql\\libmysql.lib" -o Makefile mysql.pro

                                                        "CONFIG+=release"

                                                        mingw32-make

                                                        mingw32-make debug-install

                                                        Les DLLs sont générés ici -> C:\Qt\Qt5.2.1\5.2.1\mingw48_32\plugins\sqldrivers

                                                        Maintenant que le plugin QMYSQL est correctement compilé, il faut judicieusement placer les DLL dans le répertoire du projet.

                                                        Tout d'abord, créer un dossier sqldrivers dans le répertoire de votre exécutable, puis y placer la DLL correspondant au mode de compilation (debug ou release) qui se trouve dans [Chemin vers Qt]\plugins\sqldrivers. Elle s'appellera qsqlmysql4d.dll si en débogage et qsqlmysql4.dll sinon.

                                                        Ensuite, revenir au répertoire où se situe l'exécutable et y placer la DLL libmysql.dll de [Chemin vers MySQL]\lib.

                                                        Voici un petit récapitulatif de la hiérarchie du projet :

                                                        En mode de débogage

                                                        En release

                                                        • projet
                                                          • debug
                                                            • sqldrivers
                                                              • qsqlmysql4d.dll
                                                            • projet.exe
                                                            • libmysql.dll
                                                            • QtCore4d.dll
                                                            • QtGui4d.dll
                                                            • ...
                                                          • projet.pro
                                                          • main.cpp
                                                          • ...
                                                        • projet
                                                          • release
                                                            • sqldrivers
                                                              • qsqlmysql4.dll
                                                            • projet.exe
                                                            • libmysql.dll
                                                            • QtCore4.dll
                                                            • QtGui4.dll
                                                            • ...
                                                          • projet.pro
                                                          • main.cpp
                                                          • ...

                                                        -
                                                        Edité par isak25 le 6 mai 2014 à 20:50:45


                                                        isak merci infiniment et du fond du coeur tu viens de mettre fin à 3 semaines de calvaire infame et très chronophage ! Je n'ai pas testé tes commandes mais tu es le seul de tout interet qui a enfin su me dire où était générées ces foutues DLL ^^ Alors mille fois merci !

                                                        [EDIT] Je précise que cela a fonctionné pour la version 5.6 de Qt et 5.7.12 de Mysql ! Si ça peut aider d'autres :)

                                                        -
                                                        Edité par Algorun 1 mai 2016 à 18:25:59

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                        Celui qui croit tout savoir ne sait rien
                                                          1 mai 2016 à 19:01:36

                                                          J suis content de t'avoir aider Algorun.

                                                          Avant que j ne donne ma réponse sur ce sujet , il était considéré comme résolut, alors que le sujet était loin de l'être. J'ai l'impression que beaucoup de gens font exprès d'aider et glissent des erreurs dans leur réponses . Moi j'ai donné une réponse juste pour le prouver.

                                                            Beaucoup de sujets sont considérés comme résolut mais ceux qui résous ces sujets laisse souvent erreurs pour nous compliquer la vie d'avantage .

                                                            SVP : rassurez vous d'avoir vraiment résolut   les sujet avant de les validés .

                                                          -
                                                          Edité par isak25 1 mai 2016 à 19:03:46

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            24 mars 2018 à 4:18:40

                                                            Bonjour à tous,

                                                            j'ai passé mes 2 derniers jours à chercher une solution à ce problème et  sincèrement j'aimerais que quelqu'un l'essaie car je ne suis pas 100% sûr ;). 

                                                            Étape 1: Désinstaller QT

                                                            Étape 2: Télécharger le .zip du connector/c 32bits de mysql https://dev.mysql.com/downloads/connector/c/

                                                            Étape 3: Dézipper et/ou copier le libmysql.dll dans C:\windows qui est dans le dossier \lib\ du .zip

                                                            Étape 4: Redémarrer

                                                            Étape 5: Installer Qt à nouveau

                                                            Code Qt: Ne pas oublier dans le .pro QT += sql

                                                            //***Les include à ajouter***//
                                                            
                                                            #include <QtSql/QtSql>
                                                            #include <QtSql/QSqlDatabase>
                                                            #include <QtSql/QSqlQuery>
                                                            #include <QtDebug>   
                                                            
                                                            //*****************************************************
                                                            
                                                            QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
                                                                db.setHostName("localhost");
                                                                db.setDatabaseName("test");
                                                                db.setPort(3306);
                                                                db.setUserName("root");
                                                                db.setPassword("");
                                                                if (!db.open()) {
                                                                    qDebug() << "Database error occurred";
                                                                }
                                                                else qDebug() << "You're connected!";
                                                            
                                                            


                                                            J'espère que ceci aidera !!! J'attends de voir si cela à permis à certain de régler leur problème.

                                                            -
                                                            Edité par QcG1G3ur 24 mars 2018 à 4:21:52

                                                            • Partager sur Facebook
                                                            • Partager sur Twitter

                                                            [Tuto] Utiliser les bases de données MySQL avec Qt

                                                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                            • Editeur
                                                            • Markdown