Удалить именованное соединение
Синтаксические правила
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()
.