Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. French
  4. QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection

QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection

Scheduled Pinned Locked Moved Unsolved French
9 Posts 2 Posters 1.7k Views
  • 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.
  • A Offline
    A Offline
    Anas
    wrote on 21 Jun 2020, 22:19 last edited by
    #1

    Salut tout le monde
    j'essaie de connecter mon application qt à mysql, je sais pas pourquoi ça m'affiche en message d'erreur : QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed.
    can someone help me please, this is my code :

    void MainWindow::on_pushButton_clicked()
    {
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("127.0.0.1");
    db.setUserName("root");
    db.setPassword("");
    db.setDatabaseName("pmkfinal");
    if(db.open()){
    QMessageBox::information(this,"Connection","Database Connected Successfully");
    }else{
    QMessageBox::information(this,"Connection","Database not Connected Successfully");
    }

    }

    Thank you All
    j'ai essayé en nommant la connection, en mettant une condition contains() avant de me connecter mais ca ne marche toujors pas quelqu'un pourrait m'aider s'il vous plait!!

    1 Reply Last reply
    0
    • S Offline
      S Offline
      SGaist
      Lifetime Qt Champion
      wrote on 22 Jun 2020, 20:47 last edited by
      #2

      Bonjour,

      A chaque appelle de cette méthode, la connection par défaut est créée une nouvelle fois et du coup remplace l'ancienne et génère ce message d'avertissement. Soit il faut créer la connection une fois et la réutiliser soit il faut la retirer à la fin de cette méthode.

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

      1 Reply Last reply
      1
      • A Offline
        A Offline
        Anas
        wrote on 23 Jun 2020, 03:33 last edited by
        #3

        Merci pour votre réponse, le problème c'est qu'en retirant la connection à la fin de cette méthode ça m'affiche un autre message d'erreur indiquant qu'elle est toujours utilisée et que je perdrai toutes mes requêtes.
        Quand j'utilise QSqlDatabase::database au lieu de QSqlDatabase::addDatabase pour utiliser ma connection au lieu de la recréer ca n'affiche aucun message d'erreur par contre ne connecte toujours pas ma base de donnée. merci pour votre aide

        1 Reply Last reply
        0
        • S Offline
          S Offline
          SGaist
          Lifetime Qt Champion
          wrote on 23 Jun 2020, 04:43 last edited by
          #4

          La technique pour le faire correctement est décrite dans la documentation de removeDatabase.

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

          A 2 Replies Last reply 24 Jun 2020, 10:16
          1
          • S SGaist
            23 Jun 2020, 04:43

            La technique pour le faire correctement est décrite dans la documentation de removeDatabase.

            A Offline
            A Offline
            Anas
            wrote on 24 Jun 2020, 10:16 last edited by
            #5
            This post is deleted!
            1 Reply Last reply
            0
            • S SGaist
              23 Jun 2020, 04:43

              La technique pour le faire correctement est décrite dans la documentation de removeDatabase.

              A Offline
              A Offline
              Anas
              wrote on 24 Jun 2020, 12:45 last edited by
              #6

              @SGaist Merci pour votre aide, j'ai réussi à le faire marché par contre maintenant en essayant d’exécuter la requête ça m'affiche l’erreur suivante : QSqlQuery::exec: database not open voici mon code :

              QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");

              void MainWindow::on_pushButton_clicked()
              {
              db.setHostName("127.0.0.1");
              db.setUserName("root");
              db.setPassword("");
              if(db.open()){
              QMessageBox::information(this,"Connection","Database Connected Successfully");
              }else{
              QMessageBox::information(this,"Not connected","Database not Connected Successfully");
              db.lastError();
              }
              {
              db.setDatabaseName("PMK");
              QSqlQuery query;
              query=QSqlQuery(db);
              query.exec("CREATE TABLE Products(Price int");

              }
              db.close();
              }

              1 Reply Last reply
              0
              • S Offline
                S Offline
                SGaist
                Lifetime Qt Champion
                wrote on 24 Jun 2020, 19:15 last edited by
                #7

                Est-ce que db est devenu une variable static ?

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

                1 Reply Last reply
                2
                • A Offline
                  A Offline
                  Anas
                  wrote on 4 Jul 2020, 23:09 last edited by
                  #8

                  c'etait juste pour voir si ça pourrait arranger les choses mais çà n'a pas marché, maintenant j'ai l'erreur suivante :
                  QSqlDatabasePrivate::database: unable to open database: "Access denied for user 'root'@'localhost' (using password: NO) QMYSQL: Unable to connect"
                  auriez vous une idée pour la résoudre s'il vous plait. Merci.

                  1 Reply Last reply
                  0
                  • S Offline
                    S Offline
                    SGaist
                    Lifetime Qt Champion
                    wrote on 5 Jul 2020, 18:48 last edited by
                    #9

                    Malheureusement non, il n'y avait aucune chance pour que cela aide. Il est même spécifiquement recommander dans la documentation de ne pas garder de variable de type QSqlDatabase.

                    La connection en elle-même fonctionne. C'est un réglage de MySQL qui râle.

                    Comment est-ce que la base de données est configurée ?

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

                    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