QSqlQueryModel的实例操作
QSqlQueryModel类为SQL的结果集提供了一个只读的数据模型,下面我们先利用这个类进行一个最简单的操作。
1. #ifndef DATABASE_H
2.
3. #define DATABASE_H
4.
5. #include <QSqlDatabase>
6. #include <QSqlQuery>
7.
8. static bool createConnection()
9. {
10. QSqlDatabase db = QSqlDatabase::addDatabase(“QSQLITE”);
11. db.setDatabaseName(“database.db”);
12. if(!db.open()) return false;
13. QSqlQuery query;
14. query.exec(“create table student (id int primary key, name vchar)”);
15. query.exec(“insert into student values (0,’yafei0′)”);
16. query.exec(“insert into student values (1,’yafei1′)”);
17. query.exec(“insert into student values (2,’yafei2′)”);
18. return true;
19. }
20. #endif // DATABASE_H
1. #include <QtGui/QApplication>
2. #include “widget.h”
3. #include “database.h”
4. int main(int argc, char *argv[])
5. {
6. QApplication a(argc, argv);
7. if(!createConnection())
8. return 1;
9. Widget w;
10. w.show();
11. return a.exec();
12. }
1. void Widget::on_pushButton_clicked()
2. {
3. QSqlQueryModel *model = new QSqlQueryModel;
4. model->setQuery(“select * from student”);
5. model->setHeaderData(0, Qt::Horizontal, tr(“id”));
6. model->setHeaderData(1, Qt::Horizontal, tr(“name”));
7. QTableView *view = new QTableView;
8. view->setModel(model);
9. view->show();
10. }
1. #include <QSqlQueryModel>
2. #include <QTableView>
1. int column = model->columnCount(); //获得列数
2. int row = model->rowCount(); // 获得行数
3. QSqlRecord record = model->record(1); //获得一条记录
4. QModelIndex index = model->index(1,1); //获得一条记录的一个属性的值
5. qDebug() << “column num is:” << column << endl
6. << “row num is:” << row << endl
7. <<”the second record is:” << record << endl
8. << “the data of index(1,1) is:”<< index.data();
1. #include <QSqlRecord>
2. #include <QModelIndex>
3. #include <QDebug>
1. QSqlQuery query = model->query();
2. query.exec(“select name from student where id = “);
3. query.next();
4. qDebug() << query.value(0).toString();
1. void Widget::on_pushButton_clicked()
2. {
3. QSqlQueryModel *model = new QSqlQueryModel;
4. model->setQuery(“select * from student”);
5. model->setHeaderData(0, Qt::Horizontal, tr(“id”));
6. model->setHeaderData(1, Qt::Horizontal, tr(“name”));
7. QTableView *view = new QTableView;
8. view->setModel(model);
9. view->show();
10.
11. QSqlQuery query = model->query();
12. query.exec(“insert into student values (10,’yafei10′)”);
13. //插入一条记录
14. }
1. void Widget::on_pushButton_clicked()
2. {
3. QSqlQueryModel *model = new QSqlQueryModel;
4. model->setQuery(“select * from student”);
5. model->setHeaderData(0, Qt::Horizontal, tr(“id”));
6. model->setHeaderData(1, Qt::Horizontal, tr(“name”));
7. QTableView *view = new QTableView;
8. view->setModel(model);
9. view->show();
10. QSqlQuery query = model->query();
11. query.exec(“insert into student values (20,’yafei20′)”);
12. //插入一条记录
13. model->setQuery(“select * from student”); //再次查询整张表
14. view->show(); //再次进行显示,这句也可以不写
15. }
QSqlQueryModel的实例操作的更多相关文章
- Qt数据库 QSqlTableModel实例操作(转)
本文介绍的是Qt数据库 QSqlTableModel实例操作,详细操作请先来看内容.与上篇内容衔接着,不顾本文也有关于上篇内容的链接. Qt数据库 QSqlTableModel实例操作是本文所介绍的内 ...
- [转]使用Xcode 4发布App 实例操作
使用xcode 4发布app 实例操作是本文介绍的内容,不多说,我们直接进入话题. 1.iOS Provisioning Portal 和iTunes Connect 没有变,下载与安装.mobile ...
- Flashback Drop实例操作
1.Flashback DropFlashback Drop 是从Oracle 10g 开始出现的,用于恢复用户误删除的对象(包括表,索引等), 这个技术依赖于Tablespace Recycle B ...
- 058——VUE中vue-router之实例操作新闻列表单页面应用与路由别名的使用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 040——VUE中组件之组件间的数据参props的使用实例操作
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 034——VUE中表单控件处理之使用vue控制radio表单的实例操作
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- php5.4以上 mysqli 实例操作mysql 增,删,改,查
<?php //php5.4以上 mysqli 实例操作mysql header("Content-type:text/html;charset=utf8"); $conn ...
- [Sqlite]-->嵌入式数据库事务理解以及实例操作
引子: 1. Sqlite在Windows.Linux 和 Mac OS X 上的安装过程 2,嵌入式数据库的安装.建库.建表.更新表结构以及数据导入导出等等具体过程记录 SQLite 事务(Tran ...
- 每天一个JavaScript实例-操作元素定位元素
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
随机推荐
- Maven配置文件Pom.xml详解
<project xmlns="http://maven.apache.org/POM/4.0.0 " xmlns:xsi="http://www.w3. ...
- php网页显示正方形图片缩略图
需求是这样的:原始图片的大小是不定的,类似800*600.1000*756,现有一个页面要以正方形(60*60)显示这些图片,注意:图片只能在内存处理,不能缩小后保存到本地磁盘. 解决办法: html ...
- Java [leetcode 34]Search for a Range
题目描述: Given a sorted array of integers, find the starting and ending position of a given target valu ...
- Hibernate4.x之映射关系--双向1-n
双向1-n与双向n-1是完全相同的两种情形 双向1-n需要在1的一端可以访问n的一端,反之亦然. 域模型:从Order到Customer的多对一双向关联需要在Order类中定义一个Customer属性 ...
- 用VisualSVN做项目版本控制
一.SVN服务端 1.VisualSVN Server下载: http://download.csdn.net/detail/jiminull/4448874 或 http://www.visuals ...
- android:installLocation简析
在Froyo(android 2.2,API Level:8)中引入了android:installLocation.通过设置该属性可以使得开发者以及用户决定程序的安装位置. android:inst ...
- UVA 11488-Hyper Prefix Sets(Trie)
题意: 给一个01串的集合,一个集合的幸运值是串的个数*集合中串的最大公共前缀 ,求所有子集中最大幸运值 分析: val[N]表示经过每个节点串的个数求幸运值 求就是每个节点值*该节点的深度 搜一遍树 ...
- r语言入门资料
最近有好多r语言的爱好者问我r语言的事情,在百度上简单的收一收,感觉都在扯淡,真正适合初学者入门的资料几乎没有,比如最开始用什么编辑器比较好,在哪下载,最开始学习的例子有什么? 在日本网站上反倒是找 ...
- jetty上传 Form too large: 275782 > 200000
1,找到jetty服务器下的jetty.xml,在 <Configure id="Server" class="org.eclipse.jetty.server.S ...
- 【Java基础】Java设计模式简介
什么是设计模式 设计模式(Design pattern)是一套被反复使用.被多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性.设计 ...