- 1、本文档共48页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Qt数据库:利用QSqlQuery类执行SQL语句 SQL即结构化查询语言,是关系数据库的标准语言。前面已经提到,在Qt中利用QSqlQuery类实现了执行SQL语句。需要说明,我们这里只是Qt教程,而非专业的数据库教程,所以我们不会对数据库中的一些知识进行深入讲解,下面只是对最常用的几个知识点进行讲解。 操作SQL语句返回的结果集。 在上面的程序中,我们使用query.exec(“select * from student”);来查询出表中所有的内容。其中的SQL语句“select * from student”中“*”号表明查询表中记录的所有属性。而当query.exec(“select * from student”);这条语句执行完后,我们便获得了相应的执行结果,因为获得的结果可能不止一条记录,所以我们称之为结果集。 结果集其实就是查询到的所有记录的集合,而在QSqlQuery类中提供了多个函数来操作这个集合,需要注意这个集合中的记录是从0开始编号的。最常用的有: seek(int n) :query指向结果集的第n条记录。 first() :query指向结果集的第一条记录。 last() :query指向结果集的最后一条记录。 next() :query指向下一条记录,每执行一次该函数,便指向相邻的下一条记录。 previous() :query指向上一条记录,每执行一次该函数,便指向相邻的上一条记录。 record() :获得现在指向的记录。 value(int n) :获得属性的值。其中n表示你查询的第n个属性,比方上面我们使用“select * from student”就相当于“select id, name from student”,那么value(0)返回id属性的值,value(1)返回name属性的值。该函数返回QVariant类型的数据,关于该类型与其他类型的对应关系,可以在帮助中查看QVariant。 at() :获得现在query指向的记录在结果集中的编号。 需要说明,当刚执行完query.exec(“select * from student”);这行代码时,query是指向结果集以外的,我们可以利用query.next(),当第一次执行这句代码时,query便指向了结果集的第一条记录。当然我们也可以利用seek(0)函数或者first()函数使query指向结果集的第一条记录。 事务操作 事务是数据库的一个重要功能,所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。 在Qt中用transaction()开始一个事务操作,用commit()函数或rollback()函数进行结束。commit()表示提交,即提交事务的所有操作。具体地说就是将事务中所有对数据库的更新写回到数据库,事务正常结束。rollback()表示回滚,即在事务运行的过程中发生了某种故障,事务不能继续进行,系统将事务中对数据库的所有已完成的操作全部撤销,回滚到事务开始时的状态。 Qt数据库(六)QSqlTableModel Qt提供了操作单表的QSqlTableModel,如果我们需要对表的内容进行修改,那么我们就可以直接使用这个类。 QSqlTableModel,该类提供了一个可读写单张SQL表的可编辑数据模型。我们下面就对其的几个常用功能进行介绍,分别是修改,插入,删除,查询,和排序。 这里我们使用了db.setDatabaseName(“sqinbox.db”); ,而是使用了真实的文件,这样后面对数据库进行的操作就能保存下来了。如果使用内存数据库则表示为db.setDatabaseName(“:memory:”)。 其中的部件有Table View 和 Line Edit,其余是几个按钮部件。 然后在widget.h中加入头文件: #include QSqlTableModel 在private中声明对象:QSqlTableModel *model; 因为我们要在不同的函数中使用model对象,所以我们在这里声明它。 我们到widget.cpp文件中的构造函数里添加如下代码: model = new QSqlTableModel(this);model-setTable(“student”);model-setEditStrategy(QSqlTableModel::OnManualSubmit);model-select(); //选取整个表的所有行// model-removeColumn(1); //不显示name属性列,如果这时添加记录,则该属性的值添加不上ui-tableView-setModel(
您可能关注的文档
- 女装秋冬季流行趋势与陈列模版(52页)详解.ppt
- 女装市场调查报告(31页)详解.ppt
- 耦合透镜tcos优化设计计算详解.ppt
- 排队论与服务过程管理培训(30页)详解.ppt
- 配制一定物质的量浓度的溶液1详解.ppt
- 皮具市场调研报告样本(64页)详解.ppt
- 啤酒春节促销方案(41页)详解.ppt
- 品牌店项目如何提升客户满意度(43页)详解.ppt
- 品牌服装市场调研报告(58页)详解.ppt
- 平板电脑市场报告(19页)详解.ppt
- 2025至2030中国乳酸行业市场发展分析及投资研究咨询报告.docx
- 2025年厨房电器电商仓储物流配送节点优化与效率提升方案报告.docx
- 2025-2026学年小学科学青岛版五四学制五年级下册-青岛版(五四学制)(2001)教学设计合集.docx
- 2025年智能灌溉系统在林业资源保护中的应用分析.docx
- 智能快递分拣中心自动化建设对快递企业成本结构影响分析.docx
- 建筑施工工序优化方案.docx
- 休闲旅游区基础设施项目社会稳定风险评估报告(范文模板).docx
- 2025-2026学年小学科学青岛版五四制2017一年级下册-青岛版(五四制)(2017)教学设计合集.docx
- 建筑施工合同管理方案.docx
- 跨境电商办公用品电商仓储自动化升级方案2025年智能化仓储系统建设与实施.docx
最近下载
- 工程观感质量评价标准.pdf VIP
- 2023-2024 学年高中语法专项练习单选100题-现在完成时-学生版.docx VIP
- 2023-2024 学年高中语法专项练习单选100题-非谓语动词-学生版.docx VIP
- 一种隔离RS485与RS422兼容电路.pdf VIP
- 2023-2024 学年高中语法专项练习单选100题-构词法-转化法-学生版.docx VIP
- 2023-2024 学年高中语法专项练习单选100题-时态辨析-学生版.docx VIP
- 2023-2024 学年高中语法专项练习单选100题-主谓一致-学生版.docx VIP
- 2023-2024 学年高中语法专项练习单选100题-被动语态-学生版.docx VIP
- 2023-2024 学年高中语法专项练习单选100题-动词-学生版.docx VIP
- 2023-2024 学年高中语法专项练习单选100题-虚拟语气-学生版.docx VIP
文档评论(0)