当前位置: 首页 > article >正文

Qt多线程与数据库

需求:

数据库的一张表里有10000条数据

一下子都读出来,页面会卡死。

之前上个项目用的方法是分页显示,数据库查询时加limit

这次情景不同,如果就必须要把数据都读出来。

那么可以用多线程,在子线程中查询数据,主线程可以弹出一个模态窗口进行提示,如“数据载入中”。

但是我按这个思路走下去,程序会出现偶发的崩溃。

去找原因时,猜测应该是因为由QSqlDataBase::addDatabase()生成的QSqlDatabase只能在创建它的线程中使用

qt数据库多线程问题的解决(QSqlDatabase只能在创建它的线程中使用)_qsqlite不支持多线程-CSDN博客

解决思路是:

如果希望在子线程中完成对数据库的查询操作,那么在子线程中重新添加一个新的连接名。

比如线程A
QSqlDatabase::addDatabase("QSQLITE", "A");
QSqlQuery query(QSqlDatabase::database("A"));

线程B
QSqlDatabase::addDatabase("QSQLITE", "B");
QSqlQuery query(QSqlDatabase::database("B"));


http://www.kler.cn/a/325852.html

相关文章:

  • Flutter在MaterialApp中的builder初始化多个包
  • 网络协议之UDP
  • spi 回环
  • AWTK VSCode 实时预览插件端口冲突的解决办法
  • 在 Spark RDD 中,sortBy 和 top 算子的各自适用场景
  • JavaWeb——JS、Vue
  • Vue.js组件开发
  • Django 和 ASP.NET Zero 的对比分析
  • Python 复制PDF中的页面
  • 基于Vue3内置的lodash函数库实现防抖节流
  • centos9 nginx 版本
  • 深入解析Excel文件格式:.xls与.xlsx的差异与应用指南
  • 网络战时代的端点安全演变
  • HTML流光爱心
  • 【VUE】axios组件
  • 解决 Pandas 中的 XLRDError:处理 “Excel xlsx file; not supported” 错误
  • 知识产权的力量
  • 四十五、多云/混合云架构设计(多云监控平台与工具介绍)
  • 动态规划算法专题(一):斐波那契数列模型
  • 机器学习课程学习周报十四
  • 常见电脑品牌BIOS设置与进入启动项快捷键
  • 物理学基础精解【23】
  • golang学习笔记27-反射【重要】
  • C++ | Leetcode C++题解之第447题回旋镖的数量
  • 汽车EDI:Martinrea EDI 对接
  • 自动驾驶系统研发系列—智能驾驶守门员:详解DOW(开门预警)功能,开启更安全的驾驶体验