QSqlQuery提供了一个执行和查询的状态,该类封装了函数提取和检索数据的功能,它可以被用做数据操作
语句,列出select insert update selete ,也介意作为数据定义语句,列如create table
成功执行sql语句 isActive会返回true,否则返回false,
通过导出记录执行以下语句
· next()
· previous()
· first()
· last()
· seek()
游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制
这些函数允许程序设计者去向前向后移动在记录中
For example:
QSqlQuery query("SELECT country FROM artist");
while (query.next()) {
QString country = query.value(0).toString();
doSomething(country);
}
参数化查询
QSqlQuery query;
query.prepare("INSERT INTO person (id, forename, surname) "
"VALUES (:id, :forename, :surname)");
query.bindValue(0, 1001);
query.bindValue(1, "Bart");
query.bindValue(2, "Simpson");
query.exec();
QSqlQuery query;
query.prepare("INSERT INTO person (id, forename, surname) "
"VALUES (?, ?, ?)");
query.addBindValue(1001);
query.addBindValue("Bart");
query.addBindValue("Simpson");
query.exec();
QSqlQuery::QSqlQuery(QSqlResult *result)
根据结果集构造一个QSqlQuery对象
QSqlQuery::QSqlQuery(QSqlDatabase db)
根据数据库得到一个QSqlQuery对象
void QSqlQuery::addBindValue(const QVariant &val, QSql::ParamType paramType = QSql::In)
参数化查询的时候,调用该函数,
int QSqlQuery::at() const
返回当前内部查询的位置,该位置是以0开始。
void QSqlQuery::bindValue(int pos, const QVariant &val, QSql::ParamType paramType = QSql::In)
构建参数。
void QSqlQuery::clear()
清除结果集,并释放资源
bool QSqlQuery::exec(const QString &query)
执行查询
bool QSqlQuery::exec()
执行一个已经准备好的查询。
QString QSqlQuery::executedQuery() const
返回最后一次查询的字符串。
int QSqlQuery::numRowsAffected() const
返回影响的函数
bool QSqlQuery::prepare(const QString &query)
构建准备查询语句
bool QSqlQuery::previous()
在结构集中返回上一个结果集。
const QSqlResult *QSqlQuery::result() const
返回结果集
void QSqlQuery::setForwardOnly(bool forward)
设置向前查询
int QSqlQuery::size() const
返回结果集的大小
QVariant QSqlQuery::value(int index) const
返回值
QVariant QSqlQuery::value(const QString &name) const
根据字段名返回值。