QSqlDatabasePrivate mäckert beim Beenden
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
QSqlDatabasePrivate mäckert beim Beenden
Hallo, wenn ich mein Programm beenden erhalte ich an der Konsole dies hier:
QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will
cease to work.
Aber in Destruktor meiner Klasse die die DB benutzt wird die Verbidnugn zur DB getrennt. Oder mach ich da was falsch?
QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will
cease to work.
Aber in Destruktor meiner Klasse die die DB benutzt wird die Verbidnugn zur DB getrennt. Oder mach ich da was falsch?
-
FlorianBecker
- Beiträge: 1213
- Registriert: 2. Dezember 2004 10:54
- Kontaktdaten:
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
-
FlorianBecker
- Beiträge: 1213
- Registriert: 2. Dezember 2004 10:54
- Kontaktdaten:
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
-
law.skynet
- Beiträge: 32
- Registriert: 17. April 2007 23:01
ich habe das selbe problem
ich öffne meine db via database.h
danach verbinde ich mich via main.cpp
und fragen danach daten via mainwindow.cpp ab
ich sehe die daten auch aber wenn ich das programm beende bekomme ich immer folgende meldung:
QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work.
wie bekomme ich diese weg?
ich bin derzeit noch recht neu in qt4, ich arbeite mit derzeit durch diese
http://www.qt4-buch.de/ buch durch.
cu
law.skynet
ich öffne meine db via database.h
Code: Alles auswählen
...
static bool connectDB()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("foo.db");
if (!db.open()) {
QMessageBox::critical(0, qApp->tr("Cannot open database"),
qApp->tr("Unable to establish a database connection.\n\n"
"Click Cancel to exit."), QMessageBox::Cancel);
return false;
}
return true;
}
...
Code: Alles auswählen
...
if (!connectDB())
return 1;
...
Code: Alles auswählen
...
tableModel = new QSqlTableModel;
tableModel->setTable("foo");
tableModel->setEditStrategy(QSqlTableModel::OnManualSubmit);
tableModel->select();
tableModel->setHeaderData(0, Qt::Horizontal, tr("Title (name)"));
itemView->setModel(tableModel);
...
QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work.
wie bekomme ich diese weg?
ich bin derzeit noch recht neu in qt4, ich arbeite mit derzeit durch diese
http://www.qt4-buch.de/ buch durch.
cu
law.skynet
static void QSqlDatabase::removeDatabase( const QString & connectionName );
Wenn man beim Erzeugen der Datenbankverbindung einen eigenen Namen angibt ( "MyApp" ), ist es kein Problem, diese Verbindung auch wieder zu entfernen. Einfach removeDatabase in den Destruktur und es passt. (Sollte so aber auch mit der Default-connection klappen)
Wenn man natürlich sein DB-Objekt (oder das Objekt, welches auf der Datenbank operiert) als Zeiger verwaltet, darf man keinesfalls vergessen, dieses mit delete wieder zu zerstören. Ist mir so vor kurzem passiert
Grüße
Franz
Wenn man beim Erzeugen der Datenbankverbindung einen eigenen Namen angibt ( "MyApp" ), ist es kein Problem, diese Verbindung auch wieder zu entfernen. Einfach removeDatabase in den Destruktur und es passt. (Sollte so aber auch mit der Default-connection klappen)
Wenn man natürlich sein DB-Objekt (oder das Objekt, welches auf der Datenbank operiert) als Zeiger verwaltet, darf man keinesfalls vergessen, dieses mit delete wieder zu zerstören. Ist mir so vor kurzem passiert
Grüße
Franz
-
law.skynet
- Beiträge: 32
- Registriert: 17. April 2007 23:01
Grobes Vorgehens-Schema:
Grüße
Franz
Code: Alles auswählen
QSqlDatabase db = QSqlDatabase::addDatabase( "QSQLITE", "MyApp" );
db.setDatabaseName( "/Path/To/MyApp.db" );
if( !db.open() )
qDebug( "Couldn't open the database" );
QSqlQuery q( db );
q.exec( ... );
[...]
QSqlDatabase::removeDatabase( "MyApp" );Franz
-
law.skynet
- Beiträge: 32
- Registriert: 17. April 2007 23:01