出现这个告警是因为打开了多个db而没有及时关闭,网上搜了答案是使用完了执行

QSqlDatabase::removeDatabase(m_connectionName);

泄漏的问题有所改善,但点快了仍然有问题,研究了自己的代码才发现,原来自己每次 query时都open一下,即使每次查完后都关闭也来不及的。

将open 和 close函数放在构造和析构中执行;问题解决;

openSQL

void Worker::openDatabase()
{
QDateTime dateTime = QDateTime::currentDateTime();
QString m_dbName = "zzz";
m_connectionName = "m_dbName";
m_connectionName += dateTime.toString("_yyyyMMdd_hhmmss"); m_db = QSqlDatabase::addDatabase("QMYSQL", m_connectionName);
if (!m_db.isValid()) {
qDebug()<<"openDatabase not valid";
return ;
} m_db.setHostName("localhost");
m_db.setUserName("root");
m_db.setPassword("root");
m_db.setDatabaseName(m_dbName); if (!m_db.open()) {
qDebug()<<"openDatabase not open";
return ;
}
m_query = new QSqlQuery(m_db);
}

closeSQL

void Worker::closeDatabase()
{
if(m_query != NULL )
{
delete m_query;
m_query = NULL;
} if (m_db.isValid()) {
if (m_db.isOpen())
m_db.close();
m_db = QSqlDatabase::database("", false);
QSqlDatabase::removeDatabase(m_connectionName);
}
qDebug()<<"closed;";
}

最后是工作函数

void Worker::slot1()
{
QString str = "delete from test where id > 300000 ";
QString str1 = "UPDATE test SET content = 'Checked' WHERE content = 'Wilson' ";
QString str2 = "update test set content = 'zero.' where content > '10000' "; qDebug()<<"3 slots1 : "<<QThread::currentThreadId();
tmpTime.start();
m_db.transaction();
for (int i = ; i < ; i++ )
{
QString str3 = QString("insert into test(content) values('[Checked]')");
m_query->exec(str3);
globalVar++;
}
m_query->exec(str1);
m_query->exec(str2);
m_query->exec(str); m_db.commit();
qDebug()<<"Time Elapsed: "<<tmpTime.elapsed()<<" ms"; #if 0
while(m_query->next()) //query.next()指向查找到的第一条记录,然后每次后移一条记录
{
int ele0 = m_query->value().toInt();
QString ele1 =m_query->value().toString();
QString ele2 = m_query->value().toString();
qDebug() << ele0 <<ele1 <<ele2 ;
}
#endif qDebug()<<"query done.";
emit sig1(); }

1, Developing utilities.

2, Wellknown linuxc

3,. wellknown qt

===================================

compile mysql for qt

'qt_sql_default_connection' is still in use的更多相关文章

  1. QT基本使用

    安装方法: ubuntu12.04下安装QT方法:http://blog.csdn.net/xsl1990/article/details/8299756 输入以下命令: sudo apt-get i ...

  2. 解析Qt4.7.3编译MySql数据库驱动,存中文乱码、过滤转义字符问题

    问题:使用QSqlDataBase类建立连接MySql数据库驱动加载失败 QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available ...

  3. 【原创】<Debug> “duplicate connection name”

    [Problem] duplicate connection name [Solution] 在Qt上使用SQLite的时候,如果第二次使用QSqlDatabase::addDatabase()方式时 ...

  4. 【原创】连接数据库MySQL,读取、显示、修改数据

    /* Time: 2017.01.02 —— 2017.01.04 * Author: WJ * Function:连接数据库,从数据库中读取图片并显示(已成功) */ [参考链接] MySQL存入图 ...

  5. 在Qt中使用SQLite数据库

    前言 SQLite(sql)是一款开源轻量级的数据库软件,不需要server,可以集成在其他软件中,非常适合嵌入式系统. Qt5以上版本可以直接使用SQLite(Qt自带驱动). 用法 1 准备 引入 ...

  6. 很好的QSqlDatabase问题说明,关于连接错误(转)

    QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connect ...

  7. Qt+数据库

    前言支持内置数据库: 一.sqlite 1.在头文件中声明数据库对象 QSqlDatabase db; 2.在构造函数中定义对象(最好这样定义,因为对于db来说只需要addDatabase一次,否则多 ...

  8. Qt中使用QSqlDatabase::removeDatabase()的正确方法 good

    如果你用过Qt的QSqlDatabase的话,多半会对下面的警告信息感兴趣: QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_defau ...

  9. Qt 操作SQLite数据库

    项目中通常需要采用各种数据库(如 Qracle.SQL Server.MySQL等)来实现对数据的存储.查询等功能.下面讲解如何在 Qt 中操作 SQlite 数据库. 一.SQLite 介绍 Sql ...

随机推荐

  1. 关于anroid设置webview背景方法探讨(转)

    最近的项目中一直关于webView设置背景色问题在研究,最终找到了解决的方法. 基于我项目的需求,从服务端传过来的是带有标签的文本,如果使用textView会让整个布局显得很乱,里面的<img ...

  2. Linux安装服务器

    [实验:按照下述要求安装一台Server] /boot 100M / 10G /data 50G /var/ftp LVM 6G :/dev/vg_ftp/lv_ftp swap 2048M 主机名: ...

  3. jdb调试程序

    1) jdb调试正在运行的进程: 先使用jps先确定进程号,然后让jdb连接上目标进程(23549换成实际的进程号): jdb -connect sun.jvm.hotspot.jdi.SAPIDAt ...

  4. OpenGL中的需要注意的细节问题

    OpenGL中的需要注意的细节问题 1. 虽然我们使用Windows的BMP文件作为纹理时,一般是蓝色的像素在最前,其真实的格式为GL_BGR而不是GL_RGB,在数据的顺序上有所 不同,但因为同样是 ...

  5. svn cleanup失败解决方法

    一般网上给出的解决方法是使用sqlite清空.svn\wc.db的工作队列表(work_queue) 后来发现都打不开wc.db 百度一下: 保留当前目录源码,删除 .svn(隐藏)文件夹,重新che ...

  6. WIP and COST Frequently Used Troubleshooting Scripts (Doc ID 105647.1)

    Applies to: Oracle Work in Process - Version 10.7.16.1 to 12.1 [Release 10.7 to 12.1] Information in ...

  7. Python学习-9.Python函数定义

    先定义一个最基本的函数作为例子: def Print(msg): print(msg) 函数名为Print,参数有一个,为msg,函数体调用print系统函数,输出msg. 接下来就是可变参数,这个特 ...

  8. 安装Greenplum-perfmon-web监控软件遇到的问题及解决

    环境 Product Version Pivotal Greenplum (GPDB) 4.3.x Pivotal Greenplum Command Center (GPCC)   Others   ...

  9. 用.msi安装node时安装失败,出现rolling back action(转载)

    转载地址:https://blog.csdn.net/qq_33295622/article/details/52956369在重装node时出现了上图所示情况,解决方法如下: 1.在官网下载稳定版本 ...

  10. Android 的文档翻译

    https://www.cnblogs.com/Xiegg/p/3428529.html -------->media codec的文档翻译