mysql - 警告删除数据库

标签 mysql database qt

我的代码显示下一个警告:

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/

相关文章:

c++ - 奇怪的Qt include OSX下的目录结构

java - 错误 java.sql.SQLException : Column 'id' not found

javascript - nodejs (expressjs) 如何将信息从 2 个查询传递到 jade?

php - 数据库中的数据库(没有 Drupal 的 la CCK)

python - 如何创建没有主键的Storm表?

mysql - 构建调查数据库方案

css - 如何设置 Qt 样式表属性的初始值

c++ - 获取系统信息 UWP

mysql - sql 修改具有特定值的查询以返回,就像针对各种特定值执行一样

php - SELECT 和 INSERT 未选择