ich arbeite in meinem Programm mit einer SQLite-DB, welche ich beim beenden des Programms immer lösche.
Die DB-Zugriffe erfolgen größtenteils über das QSqlQuery und dessen exec-Methode.
Wenn ich nach jedem exec und der entsprechenden Verarbeitung der Daten die clear()-Methode ausführe ist alles in Ordnung.
Sobald ich clear() aber nicht aufrufe kann ich beim beenden des Programms die Datenbank nicht löschen weil sie anscheinend noch schreibgeschützt ist obowhl ich die Verbindung zuvor ordnungsgemäß schließe:
Code: Alles auswählen
QString qStrDbFilename;
QString qStrDbConName;
{
QSqlDatabase db = QSqlDatabase::database();
qStrDbConName = db.connectionName();
qStrDbFilename = db.databaseName();
db.close();
}
QSqlDatabase::removeDatabase(qStrDbConName);
Die Dokumentation zum clear sagt eigentlich folgendes:
Es sollte also fast nie bis nie nötig sein, diese Funktion aufzurufen...Clears the result set and releases any resources held by the query. Sets the query state to inactive. You should rarely if ever need to call this function.
danke, mfg