QSqlQueryModel 部分

QSqlQueryModel

是执行查询语句和横贯查询结果的高级接口,他是建立在低级的QsqlQuery 之上的,它可以直接给显示类提供数据如:QTableView

QSqlQueryModel *model = new QSqlQueryModel;
     model->setQuery("SELECT name, salary FROM employee");
     model->setHeaderData(0, Qt::Horizontal, tr("Name"));//显示时的表头
     model->setHeaderData(1, Qt::Horizontal, tr("Salary"));

     QTableView *view = new QTableView;
     view->setModel(model);
     view->show();

当然 QSqlQueryModel也能单独取回数据,不显示。

QSqlQueryModel model;
     model.setQuery("SELECT * FROM employee");
     int salary = model.record(4).value("salary").toInt();

有上面可得,得到的salary 是第4行第二列,故还以写成

int salary = model.data(model.index(4, 2)).toInt();

The model is read-only by default. To make it read-write, you must subclass it and reimplement setData() and flags(). Another option is to useQSqlTableModel, which provides a read-write model based on a single database table.


QSqlQueryModel默认情况下只能读,如果想读写必须子类化它,并重新实先setData()和flags()这两个函数

或者用QSqlTableModel类,它提供读写模式,但它是基于单一表的。

QT qtcreator  自身提供了 读写模式的范例  Query Model Example,在example 中可以看到,用户可以自定义自己想要的数据显示模式。

查询执行语句:

void QSqlQueryModel::setQuery ( const QString & query, const QSqlDatabase & db = QSqlDatabase() )

 QSqlQueryModel model;
 model.setQuery("select * from MyTable");
 if (model.lastError().isValid())
     qDebug() << model.lastError();


traversing穿越,通过v.横越, 穿越, 横贯( traverse的现在分词 );(爬山时)作Z形攀登

programmatically 以编程方式

snippet 1.片段

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值