Удалить именованное соединение
Синтаксические правила
void QSqlDatabase::removeDatabase(< имя соединения >) < имя соединения >::= символьный литерал или символьная переменная
Описание
Удаляет объект-соединение с заданным < именем соединения > из списка декларированных соединений.
В момент вызова данной функции соединение не должно содержать обрабатываемых SQL-запросов, в противном случае возможна потеря выделенных для обработки запроса ресурсов.
Возвращаемое значение
Нет.
Пример
// Неправильный код
QSqlDatabase db = QSqlDatabase::addDatabase( "QLINTER", "connection_name");
if( !db.open("SYSTEM", "MANAGER8") )
{
cout < < db.lastError().driverText().toLocal8Bit().data() < < endl;
return 1;
}
QSqlQuery query("SELECT count(*) FROM AUTO", db);
QSqlDatabase::removeDatabase("connection_name");
// будет выдано предупреждение
// "db" теперь ссылается на несуществующее соединение,
// "query" содержит неправильные данные
// Правильный код:
{
QSqlDatabase db = QSqlDatabase::addDatabase( "QLINTER", "connection_name");
if( !db.open("SYSTEM", "MANAGER8") )
{
cout < < db.lastError().driverText().toLocal8Bit().data() < < endl;
return 1;
}
QSqlQuery query("SELECT count(*) FROM AUTO", db);
}
// Объекты "db" и "query" уничтожены, потому что они больше не нужны
QSqlDatabase::removeDatabase("connection_name");
// правильная операция
См. также: database().