我的代码显示下一个警告:
QSqlDatabasePrivate::removeDatabase: connection ‘qt_sql_default_connection’
is still in use, all queries will cease to work
这是我的代码,与数据库的连接没问题:
QSqlDatabase database::db()
{
return m_db;
}
bool database::connect()
{
m_db = QSqlDatabase::addDatabase("QMYSQL");
m_db.setDatabaseName("aaaa");
m_db.setHostName("192.168.xxx.xxx");
m_db.setUserName("xx");
m_db.setPassword("xxxx");
m_db.setPort(1234);
return m_db.open();
}
void database::close()
{
QString connection;
connection = m_db.connectionName();
m_db.close();
m_db.removeDatabase(connection);
}
m_db 定义为:
QSqlDatabase m_db;
我的测试是:
database db;
qDebug() << "CONNECT: " << db.connect();
db.close();
我该如何解决?
非常感谢。
最佳答案
在你关闭它之后,m_db
仍然持有你在 connect()
中配置的数据库的引用。
您可以通过分配一个默认构造的QSqlDatabase
来重置m_db
:
void database::close()
{
QString connection;
connection = m_db.connectionName();
m_db.close();
m_db = QSqlDatabase();
m_db.removeDatabase(connection);
}
关于mysql - 警告删除数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9519736/