CQSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work.
C++ (Qt)QSQlTableModel *model = new QSqlTableModel;model->setTable("table");model->select();ui.tableView->setModel(model);
// НЕПРАВИЛЬНО QSqlDatabase db = QSqlDatabase::database("sales"); QSqlQuery query("SELECT NAME, DOB FROM EMPLOYEES", db); QSqlDatabase::removeDatabase("sales"); // породит предупреждение // "db" в данный момент висит на неправильном соединении с БД, // "query" содержит неправильный результат
{ QSqlDatabase db = QSqlDatabase::database("sales"); QSqlQuery query("SELECT NAME, DOB FROM EMPLOYEES", db); } // Оба, "db" и "query", уничтожаются при выходе из их блока QSqlDatabase::removeDatabase("sales"); // правильно
void MainForm::closeEvent(QCloseEvent *event) { if(event){ QSqlDatabase db = QSqlDatabase::database(); if (db.isOpen()) db.close(); } QSqlDatabase::removeDatabase("dbName");}
void MainForm::closeEvent(QCloseEvent *event) { if(event){ mysqlModel->clear(); mysqlTableView->close(); QSqlDatabase db = QSqlDatabase::database(); if (db.isOpen()) db.close(); } QSqlDatabase::removeDatabase("proton");}
C++ (Qt)void MainForm::~MainForm() { delete mysqlModel; QSqlDatabase::database().close(); QSqlDatabase::removeDatabase("proton");}
QSqlTableModel *model = new QSqlTableModel(this);