Fehleranalyse step by step



  • 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



  • 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");
    


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


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.