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 ...
随机推荐
- jquery页面无刷新切换皮肤并保存
效果体验:http://runjs.cn/detail/hijgcghe <!DOCTYPE html> <html> <head> <meta http-e ...
- web前端优化-温故知新系列(1)
有关web前端优化的博文,博客园中有许多网友的博客中都有介绍,而且详细.精准.楼主打算写这个博客,算是对自己一年工作来的一个总结和积累有些知识从别的地方拷贝过来的,但是都审查过. 引言: 1. 慢的页 ...
- oracle 有关大数据
一. oracle大数据量分区后查询效率低下的一些建议: 1 对于当前表tm_bus_realtime_log.查看它的索引,只有一个(索引名:INDEX_BUS_REALTIME 字段名:UPLOA ...
- MySQL数据库的同步配置+MySql读写分离
使用mysql主从复制的好处有: 1.采用主从服务器这种架构,稳定性得以提升.如果主服务器发生故障,我们可以使用从服务器来提供服务. 2.在主从服务器上分开处理用户的请求,可以提升数据处理效率. 3. ...
- Zabbix探索:工作时间的设置
默认情况下,Zabbix的工作时间是启用的. 启用后,图形的北京在工作时间内就是白底的,否则就是灰底的. 今天纠结了半天,因为无论如何都是灰底的. 后来连接到服务器上一看,靠,忘记同步时间了,所以刚好 ...
- HDU2015校赛 The Magic Tower
题意:两行分别是W和B的生命值,攻击值,防御值. 如果W先,W的攻击值-B的防御值大于零则B生命值减去这么多,然后该B攻击.直到谁的生命值先小与等于零则攻击的人赢. 输出写错了..... 错误代码 # ...
- Android--应用开发2(AndroidManfest.xml)
AndroidManfest.xml 文件分析 manifest 根节点,描述package中所有内容 xmlns:android 包含命名空间声明.xmlns:android="http: ...
- BNUOJ-15505 Largest Rectangle in a Histogram DP
题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=15505 每个h[i]维护两个值l[i]和r[i],分别表示大于h[i]的左边最远距离和小于 ...
- jqgrid 设置单元格编辑/不可编辑
首先设置不可编辑,如下代码: $(', 'not-editable-cell'); 在单元格上设置一个'not-editable-cell'就可以了,如果需要设置为可编辑,那么可以使用下面的代码: f ...
- AVLTree的节点删除
当年实现自己的共享内存模板的时候,map和set的没有实现,本来考虑用一个AVLTree作为底层实现的,为啥,因为我当时的数据结构知识里面我和RBTree不熟,只搞过AVLTree,但当时我一直没有看 ...