Qt Version 5.14.0
QSqlQuery类提供执行SQL语句的接口,并且能够访问执行结果数据集。
执行一次查询
想要执行SQL语句,只需要创建一个QSqlQuery对象,然后调用它的exec函数,如下代码。(这里构造QSqlQuery对象时没有指定数据库链接名称)
QSqlQuery query;
bool flag = query.exec("SELECT name, salary FROM employee WHERE salary > 50000");
if(false == flag)
{
qDebug() << query.lastError();
}
访问结果数据集
QSqlQuery提供的接口每次只能访问结果集中的一条记录,在执行完exec()函数后,QSqlQuery对象的内部指针位于结果集第一条数据之前,调用next()函数访问第一条结果集,然后再不断调用next()函数访问剩余所有数据,示例代码如下:
while (query.next()) {
QString name = query.value(0).toString();
int salary = query.value(1).toInt();
qDebug() << name << salary;
}
QSqlQuery::value()函数用于从一条记录中读取某个特定字段的数据。字段由索引指定(从0开始),value()函数的返回值是QVariant类型的,这个类型可以保存所有C++和Qt Core中定义的类型。不同数据库的数据类型会自动映射到Qt支持的对应类型,之后可以调用toInt()、toString()等函数将其转换为具体的数据。Qt具体支持的各个数据库的数据类型,详见Qt助手关键词: Data Types for Qt-supp