Доступные версии документации

Удалить именованное соединение

Синтаксические правила
void QSqlDatabase::removeDatabase(<имя соединения>)
<имя соединения>::= символьный литерал или символьная переменная 
Описание

Удаляет объект-соединение с заданным <именем соединения> из списка декларированных соединений.

В момент вызова данной функции соединение не должно содержать обрабатываемых SQL-запросов, в противном случае возможна потеря выделенных для обработки запроса ресурсов.

Возвращаемое значение

Нет.

Пример
// Неправильный код
QSqlDatabase db = QSqlDatabase::addDatabase( "QLINTER", "connection_name");
if( !db.open("SYSTEM", "MANAGER") )
{
  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", "MANAGER") )
  {
    cout << db.lastError().driverText().toLocal8Bit().data() << endl;
    return 1;
  }
  QSqlQuery query("SELECT count(*) FROM AUTO", db);
}
// Объекты "db" и "query" уничтожены, потому что они больше не нужны
QSqlDatabase::removeDatabase("connection_name"); 
// правильная операция

См. также: database().

Заметили ошибку?
Выделите текст и нажмите Ctrl + Enter