Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. German
  4. Fehleranalyse step by step
Forum Updated to NodeBB v4.3 + New Features

Fehleranalyse step by step

Scheduled Pinned Locked Moved Solved German
3 Posts 2 Posters 1.3k Views 1 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.
  • K Offline
    K Offline
    knasan
    wrote on last edited by knasan
    #1

    Hallo Forum,

    ich bin ein C++ und QT Neuling und habe in meinem Projekt ein QMYSQL Problem was ich gerne Debugen möchte.
    Die Fehlermeldung

    QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work.
    

    Ich habe jetzt tagelang nach einer Lösung gesucht und bisher konnte ich das Problem nicht lösen. Wenn ich die Fehlermeldung richtig Verstanden habe ist der Treiber (QMYSQL) noch in Verwendung und ich versuche nochmal den selben Treiber hinzuzufügen.

    Zu meinem Code: In meinem Header habe ich eine Datenbank als Privat hinzugefügt.

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

    Und im Quellcode im Destructor schließe ich die Datenbank und entferne auch den Treiber (RemoveDatabase)

    db.close();
    db.removeDatabase("QMYSQL");
    

    Gibt es eine gute Dokumentation wie solche Fehler Step by Step Debugen kann?
    Kann mir jemand sagen welche Auswirkungen dieser Fehler im schlimmsten Fall hat?

    Vielen Dank schon einmal im Voraus für eure Hilfe.

    Gruß knasan

    1 Reply Last reply
    0
    • L Offline
      L Offline
      Leonardo
      wrote on last edited by
      #2

      Ich kann nicht so gut Deutsch, aber ich versuche es mal.

      Du sollst jede QSqlQuery freigeben, bevor du die Datenbank schließen kannst.

      QSqlQuery q("....");
      ...
      db.close();
      db.removeDatabase("QMYSQL");
      
      {
          QSqlQuery q("....");
          ...
      } // destroys q
      db.close();
      db.removeDatabase("QMYSQL");
      
      1 Reply Last reply
      1
      • K Offline
        K Offline
        knasan
        wrote on last edited by
        #3

        @Leonardo Danke für den Tipp, dieser war gold wert. Ich konnte meinen Fehler ausfindig machen und beheben.

        1 Reply Last reply
        1

        • Login

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