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

QT Sqlite数据库-教程002 查询数据-下

【1】数据库查询的优化:prepare

prepare语句是一种在执行之前将SQL语句编译为字节码的机制,可以提高执行效率并防止SQL注入攻击。

【2】使用prepare查询一张表

QString myTable = "myTable" ;
QString cmd = QString("SELECT  * FROM %1 ORDER BY id").arg(myTable.c_str());
  
QSqlQuery query(m_db);
query.setForwardOnly(true);
query.prepare(cmd);
bool bRet = query.exec();
if(bRet){
      qDebug()<<"select:"<<"success";
}
else{
      qDebug()<<"select:"<<"fail";

}
while (query.next()) {            
    int id = query.value(0).toInt();
     QString field1 = query.value(1).toString();
     QString field2 = query.value(2).toString();
     QString field3 = query.value(3).toString();
     QString field4 = query.value(4).toString();
     QString field5 = query.value(5).toString();
     qDebug()<<field1<<field2<<field3<<field4<<field5;
}
return bRet;

【3】setForwardOnly

setForwardOnly方法用于设置查询模式为只向前移动‌。当设置为true时,查询结果只能向前移动,不能向后移动或随机访问,这样可以提高查询效率并减少内存使用。

优点:

在prepare之前调用setForwardOnly(true)可以禁用缓存,从而减少内存使用并提高性能

http://www.dtcms.com/a/132259.html

相关文章:

  • 操作系统导论——第19章 分页:快速地址转换(TLB)
  • Vue.js 项目中 vue.config.js 常用配置项解析
  • bash的特性-命令和文件自动补全
  • Linux - 系统服务管理(Systemd)
  • qt中的正则表达式
  • 【记录】Docker 镜像
  • Java-面向对象
  • ffprobe是如何处理命令行参数的.
  • BFD:网络链路检测与联动配置全攻略
  • 易境通WMS系统代理仓解决方案:让代理仓管理无后顾之忧!
  • 07软件测试需求分析案例-修改用户信息
  • 手机端可部署的开源大模型; 通义千问2.5训练和推理需要的内存和外存
  • 【DDR 内存学习专栏 1.4 -- DDR 的 Bank Group】
  • 机器学习:让数据开口说话的科技魔法
  • 网络基础和socket
  • 面试宝典(C++基础)-01
  • AlexNet神经网络详解及VGGNet模型和
  • 深度学习中的数学基础:从向量到概率的全面解析
  • 测试第三课-------自动化测试相关
  • 第十九讲 XGBoost 二分类模型案例(遥感数据识别玉米与小麦地块)
  • HTML:网页的骨架 — 入门详解教程
  • Python heapq模块
  • 【Pandas】pandas DataFrame items
  • AIGC工具平台-建筑平面图3D渲染
  • Android studio Unknown Kotlin JVM target: 21
  • macOS 上使用 Homebrew 安装和配置 frp 客户端
  • 【C++】——lambda表达式
  • 数据资产保护与数据知识产权保护有何不同?
  • JavaScript中的Transferable对象教程
  • 企业级硬盘的测试流程