Seite 1 von 1

Problem mit löschen von SQLite Datenbank

Verfasst: 18. April 2008 12:15
von refresh77
Hallo.
Ich habe eine Datenbankprogramm geschrieben und jetzt hab ich mir zwei kleine Import / Export dialoge für die Datenbank gebaut. Nur leider darf ich die Datenbank nicht löschen, weil ich angeblich noch drauf zugreife..


ich Öffne die Datenbank so:
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("super.db");
if (!db.open())
...

schließe sie So:
QStringList conList;
QString strConName;
conList=db.connectionNames();
strConName=conList.at(0);
db.removeDatabase(strConName);

Die Funktion removeDatabase gibt auch ture zurrück und es ist keine weitere Datenbankverbindung in der Liste..
QSqlQuery's sollten eigentlich auch alle nicht mehr existent sein, außerdem wurde ja auch die Datenbank geschlossen... Hat jemand ne Idee was da falsch läuft?^^

Verfasst: 18. April 2008 12:40
von Christian81
Habe gerade auch so was ähnliches gemacht - allerdings rufe ich noch QSqlDatabase.close() auf bevor ich sie entferne. Danach geht es bei mir.

Verfasst: 18. April 2008 13:33
von refresh77
hab ich gerade mal versucht, leider geht das nicht..
Ka wo das Problem liegt, ich werd das ganze mal an ner anderen stelle testen..

Verfasst: 18. April 2008 14:09
von refresh77
Ich habe die QSqlDatabase als static deklariert^^, macht das wohl die Probleme? ^^
static QSqlDatabase db;

Verfasst: 18. April 2008 15:52
von Christian81
Sowas muss man nicht als static deklarieren - immer QSqldatabase::database() benutzen.
Ich habe einfach die sql-demo von qt umgebaut damit ich dort auch ein disconnect machen kann - das funktioniert. Danach kann ich die Tabelle droppen.

Verfasst: 18. April 2008 17:23
von Undefined
Lese dir nochmal die Dokumentation von QSqlDatabase durch, und hier speziel das Thema threads, dann weist du warum es nicht geht ;)

Verfasst: 21. April 2008 09:20
von refresh77
The connection defined above is a nameless connection. It is the default connection and can be accessed using database() later on:

QSqlDatabase db = QSqlDatabase::database();
ops :D, danke...
Doku schauen hilft echt^^