- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[互联网]QT数据库操作
二十一、Qt数据库(一)简介(原创)
2010-03-02 12:03
声明:本文原创于yafeilinux的百度博客,/yafeilinux 转载请注明出处。
从今天开始我们学习Qt数据库编程的内容。
先说明:我们以后使用现在最新的基于Qt 4.6.2的Qt Creator 1.3.1 Windows版本,该版本是2010年2月17日发布的。
数据库几乎是每个较大的软件所必须应用的,而在Qt中也使用QtSql模块实现了对数据库的完美支持。我们在Qt Creator的帮助中查找QtSql Module,其内容如下图:
可以看到这个模块是一组类的集合,使用这个模块我们需要加入头文件#include QtSql,而在工程文件中需要加入一行代码:QT += sql
这里每个类的作用在后面都有简单的介绍,你也可以进入其中查看其详细内容。下面我们先简单的说一下QSqlDatabase类和QSqlQuery类。
QSqlDatabase类实现了数据库连接的操作,现在Qt支持的数据库类型有如下几种:
而现在我们使用的免费的Qt只提供了SQLite和ODBC数据库的驱动(我们可以在Qt Creator安装目录下的qt\plugins\sqldrivers文件夹下查看),而其他数据库的驱动需要我们自己添加。SQLite是一个小巧的嵌入式数据库,关于它的介绍你可以自己在网上查找。
QSqlQuery类用来执行SQL语句。(关于SQL语句:在我的教程中只会出现很简单的SQL语句,你没有相关知识也可以看懂,但是如果想进行深入学习,就需要自己学习相关知识了。)
下面我们就先利用这两个类来实现最简单的数据库程序,其他的类我们会在以后的教程中逐个学习到。
1.新建Qt控制台工程。
2.选择上QtSql模块,这样就会自动往工程文件中添加QT += sql 这行代码了。
3.修改main.cpp中的内容如下。
#include QtCore/QCoreApplication#include QtSql
int main(int argc, char *argv[]){??? QCoreApplication a(argc, argv);
??? QSqlDatabase db = QSqlDatabase::addDatabase(QSQLITE); //添加数据库驱动??? db.setDatabaseName(:memory:); //数据库连接命名??? if(!db.open()) //打开数据库??? {??????? return false;??? }
??? QSqlQuery query; //以下执行相关QSL语句??? query.exec(create table student(id int primary key,name varchar));??? //新建student表,id设置为主键,还有一个name项??? query.exec(insert into student values(1,xiaogang));??? query.exec(insert into student values(2,xiaoming));??? query.exec(insert into student values(3,xiaohong));??? //向表中插入3条记录
??? query.exec(select id,name from student where id = 2);??? //查找表中id =2 的记录的id项和name项的值??? while(query.next())?????? //query.next()指向查找到的第一条记录,然后每次后移一条记录??? {??????? int ele0 = query.value(0).toInt();??????? //query.value(0)是id的值,将其转换为int型??????? QString ele1 =query.value(1).toString();??????? qDebug() ele0 ele1 ;?????? //输出两个值??? }??? ??? return a.exec();}
我们使用了SQLite数据库,连接名为“:memory:”表示这是建立在内存中的数据库,也就是说该数据库只在程序运行期间有效。如果需要保存该数据库文件,我们可以将它更改为实际的文件路径。
4.最终效果如下。
5.我们可以将主函数更改如下。
int main(int argc, char *argv[]){??? QCoreApplication a(argc, argv);
??? qDebug() Avai
您可能关注的文档
最近下载
- AutoCAD2022基础教程PPT完整全套教学课件.pptx
- 【沪科】八年级物理(全一册)知识点总结.docx VIP
- 【沪科物理八年级】3.2 声音的特性 同步练习.docx VIP
- 导轨单杆切割磁感线+电容(解析版)--2024高考物理疑难题.pdf
- 新能源汽车技术专业职业生涯规划书发展报告大一全国大学生职业规划大赛模板范文1500字.pdf VIP
- 中班语言《耳朵上的绿星星》课件.pptx
- 水力学典型复习题及答案详解.docx
- TBT454.1-2021 铁路通信信号词汇 第1部分:铁路信号词汇.pdf
- Dirty Rotten Scoundrels《骗徒臭事多(1988)》完整中英文对照剧本.docx VIP
- 舒平木门加工中心培训.docx
文档评论(0)