void QSqlDatabase::removeDatabase(const QString &connectionName)
Removes the database connection connectionName from the list of database connections.
Warning: There should be no open queries on the database connection when this function is called, otherwise a resource leak will occur.
Example:
// WRONG
QSqlDatabase db = QSqlDatabase::database("sales");
QSqlQuery query("SELECT NAME, DOB FROM EMPLOYEES", db);
QSqlDatabase::removeDatabase("sales"); // will output a warning
// "db" is now a dangling invalid database connection,
// "query" contains an invalid result set
The correct way to do it:
{
QSqlDatabase db = QSqlDatabase::database("sales");
QSqlQuery query("SELECT NAME, DOB FROM EMPLOYEES", db);
}
// Both "db" and "query" are destroyed because they are out of scope
QSqlDatabase::removeDatabase("sales"); // correct
To remove the default connection(默认连接), which may have been created with a call to addDatabase()
not specifying(未指定连接名) a connection name, you can retrieve(找回,挽回) the default connection name by calling connectionName()
on the database returned by database()
. Note that if a default database hasn’t been created an invalid database will be returned.
Note: This function is thread-safe.
总结:
removeDatabase是和database配套的.
remove之前需要保证对象被销毁.