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 ...
随机推荐
- Android学习系列(28)--App集成支付宝[已过期]
手机的在线支付,被认为是2012年最看好的功能,我个人认为这也是移动互联网较传统互联网将会大放光彩的一个功能.人人有手机,人人携带手机,花钱买东西,不再需要取钱付现,不再需要回家上网银,想买什么,扫描 ...
- 数学(扩展欧几里得算法):HDU 5114 Collision
Matt is playing a naive computer game with his deeply loved pure girl. The playground is a rectangle ...
- Oracle数据库安装后,登录Database Control时密码错误
解决方案1(实测可行): sys 和 system用户的用户名和密码还记得不?试试看如果不行,用sqlplus 在服务器本地登录%sqlplus / as sysdbaSQL>alter use ...
- (Android Studio)添加文本框
此文大部分摘自http://hukai.me/android-training-course-in-chinese/basics/firstapp/building-ui.html android : ...
- [Tommas] 测试用例覆盖率(二)
二.详细用例的设计 划分好了测试项,接着就是针对各个测试项,考虑具体的测试用例了.根据测试项的特点,测试用例的设计角度也有所不同.下面我们就来看看通常的功能点测试用例,该从哪些角度出发来进行设计: 1 ...
- Loadrunner通过sitescope监控mysql
1. Loadrunner通过sitescope监控mysql 1.1. Sitescope下载 第一次在网上下载的是sitescope11.30,安装之后无法破解,所以最后卸载了,重新下载了si ...
- Puppet学习:pp文件权限问题
由于内网的Puppet还是在测试中,所以对文件权限等内容未做过多关注. 今天报了错误: Error: Could not retrieve catalog from remote server: Er ...
- #ifdef _cplusplus (转)
原文不可考,转载链接:http://blog.csdn.net/owldestiny/article/details/5772916 有发现原文的请告知,我会及时更新. 时常在cpp的代码之中看到这样 ...
- php中的字符串和正则表达式
一.字符串类型的特点 1.PHP是弱类型语言,其他数据类型一般都可以直接应用于字符串函数操作. 1: <?php //输出345 //输出345 //先查找hello常量,若没找到,将hello ...
- 从代码都发布遇到的问题总结(C#调用非托管dll文件,部署项目) 转
http://www.cnblogs.com/Purple_Xiapei/archive/2012/06/30/2570928.html