Qt|Qt QSqlquery结果集使用——size()函数无法返回结果集个数
QSqlquery结果集使用记录
知识点:
query = new QSqlquery(db); 或者 query = QSqlquery::QSqlquery(db); 执行query.exec(str); 成功后,query就包含了结果集,可以直接操作query指针,来读取QSqlResult结果集中的内容
Query常用函数:
seek(int n) :query指向结果集的第n条记录; first() :query指向结果集的第一条记录; last() :query指向结果集的最后一条记录; next() :query指向下一条记录,每执行一次该函数,便指向相邻的下一条记录; previous() :query指向上一条记录,每执行一次该函数,便指向相邻的上一条记录; record() :获得现在指向的记录; value(int n) :获得属性的值。其中n表示你查询的第n个属性,比方上面我们使用“select * from student”就相当于“select id, name from student”,那么value(0)返回id属性的值,value(1)返回name属性的值。该函数返回QVariant类型的数据,关于该类型与其他类型的对应关系,可以在帮助中查看QVariant。 at() :获得现在query指向的记录在结果集中的编号。
Size()函数无法返回结果集个数,返回-1 原因是函数本身问题,Qt帮助索引中描述如下:
int QSqlQuery::size () constReturns the size of the result (number of rows returned), or -1 if the size cannot be determined or if the database does not support reporting information about query sizes. Note that for non-SELECT statements (isSelect() returns false), size() will return -1. If the query is not active (isActive() returns false), -1 is returned.To determine the number of rows affected by a non-SELECT statement, use numRowsAffected().See also isActive(), numRowsAffected(), and QSqlDriver::hasFeature().
翻译:
返回结果的大小(返回的行数),如果无法确定大小或数据库不支持有关查询大小的报告信息,则返回-1。注意,对于非select语句(isselect()返回false),size()将返回-1。如果查询未处于活动状态(is active()返回false),则返回-1。
要确定受非select语句影响的行数,请使用numrowsAffected()。
解决方法:
//----------获取结果集大小----------//if (query.last()){qDebug()<<"结果集大小="<
【Qt|Qt QSqlquery结果集使用——size()函数无法返回结果集个数】转载于:https://www.cnblogs.com/shuoguoleilei/p/11425397.html
推荐阅读
- 图书集合完毕
- Activiti(一)SpringBoot2集成Activiti6
- 雅集
- 解读《摩根集团》(1)
- 私有化轻量级持续集成部署方案--03-部署web服务(下)
- 斐讯K2|斐讯K2 固件搜集
- 市集,清晨
- 心系苍生直言进|心系苍生直言进 桃李不言自成蹊 ——读《杜立本文集》有感
- 萌哥与辉哥(第六集)|萌哥与辉哥(第六集) | 小别离
- federation--kubernetes集群联邦的实现