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 FehlermeldungQSqlDatabasePrivate::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");