Jjr*_*ina 18 mysql database qt
我的代码显示了下一个警告:
QSqlDatabasePrivate::removeDatabase: connection ‘qt_sql_default_connection’
is still in use, all queries will cease to work
Run Code Online (Sandbox Code Playgroud)
这是我的代码与数据库的连接很好:
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);
}
Run Code Online (Sandbox Code Playgroud)
m_db定义为:
QSqlDatabase m_db;
Run Code Online (Sandbox Code Playgroud)
我的测试是:
database db;
qDebug() << "CONNECT: " << db.connect();
db.close();
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
非常感谢你.
ale*_*sdm 32
关闭它后,m_db
仍保留对您配置的数据库的引用connect()
.
您可以m_db
通过指定默认构造重置QSqlDatabase
:
void database::close()
{
QString connection;
connection = m_db.connectionName();
m_db.close();
m_db = QSqlDatabase();
m_db.removeDatabase(connection);
}
Run Code Online (Sandbox Code Playgroud)
void database::close()
{
QString connection;
connection = m_db.connectionName();
m_db = QSQlDatabase();
//m_db.close();
m_db.removeDatabase(connection);
}
Run Code Online (Sandbox Code Playgroud)
试试这个它会工作..
归档时间: |
|
查看次数: |
8396 次 |
最近记录: |