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

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"));

相关文章:

  • MacOS升级Ruby版本详解:步骤、挑战与解决方案
  • 深度学习推理的技术实现与优化策略
  • ELK-03-skywalking监控linux系统
  • 新能源汽车储充机器人:能源高效与智能调度
  • STM32常见配置
  • LM393 电压比较器和典型电路
  • Ubuntu 镜像替换为阿里云镜像:简化你的下载体验
  • JavaScript 网页设计案例:打造一个交互式用户界面
  • 迈瑞嵌入式面试及参考答案
  • 软件测试学习笔记丨Mock的价值与实战
  • 【算法业务】关于数据驱动的用户增长思考
  • Ubuntu 开机自启动 .py / .sh 脚本,可通过脚本启动 roslaunch/roscore等
  • DMDSC更换DCR和VOTE磁盘
  • MySQL-数据库设计
  • tomcat的安装,管理与配置
  • 【翻译】babel对TC39装饰器草案的实现
  • Cumulo 的 ClojureScript 模块已经成型
  • js递归,无限分级树形折叠菜单
  • laravel with 查询列表限制条数
  • MySQL主从复制读写分离及奇怪的问题
  • ng6--错误信息小结(持续更新)
  • Python进阶细节
  • React+TypeScript入门
  • scala基础语法(二)
  • vuex 笔记整理
  • Vultr 教程目录
  • 测试如何在敏捷团队中工作?
  • 区块链分支循环
  • 如何胜任知名企业的商业数据分析师?
  • 实现简单的正则表达式引擎
  • 使用 QuickBI 搭建酷炫可视化分析
  • 学习JavaScript数据结构与算法 — 树
  • 一个SAP顾问在美国的这些年
  • 智能合约开发环境搭建及Hello World合约
  • - 转 Ext2.0 form使用实例
  • # 飞书APP集成平台-数字化落地
  • #Ubuntu(修改root信息)
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (二)测试工具
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (回溯) LeetCode 46. 全排列
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (十)T检验-第一部分
  • (十六)一篇文章学会Java的常用API
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (图)IntelliTrace Tools 跟踪云端程序
  • (转)大道至简,职场上做人做事做管理
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET 解决重复提交问题
  • .net打印*三角形
  • .NET命名规范和开发约定
  • .NET是什么
  • .pyc文件是什么?