您使用不
removeDatabase()正确。SqlDatabase的对象首先需要超出范围。请参阅文档。
使用错误
QSqlDatabase db = QSqlDatabase::database("sales");QSqlQuery query("SELECt NAME, DOB FROM EMPLOYEES", db);QSqlDatabase::removeDatabase("sales"); // will output a warning正确使用
{ QSqlDatabase db = QSqlDatabase::database("sales"); QSqlQuery query("SELECt NAME, DOB FROM EMPLOYEES", db);}// Both "db" and "query" are destroyed because they are out of scopeQSqlDatabase::removeDatabase("sales"); // correct在第二个示例中,
db将超出范围
after },您将不再看到错误消息
QSqlDatabasePrivate::removeDatabase:connection 'myConnectionName' is still in use, all queries will cease to work
请仔细阅读文档。数据库内容是明智的,需要仔细检查每一行。
你也失踪
db.close(); -在删除数据库之前,请先关闭数据库。



