QT的QSqlQuery与QSqlQueryModel RowCount只能读到256问题的解决

简介:

在使用QTQSqlQueryModel操作SQLite数据库的时候,通过model->rowCount();只能返回最多256。这个问题需要通过在操作结果前先通过fetchmore()来获取所有的结果,然后获得具体的行数。

         QTQSqlQueryQSqlQueryModel每次最多只能缓存查询结果的256条。如果查询语句操作的结果超过256条了,也只能返回256。这样就必然会导致在后续操作中的错误。

     解决方法如下:

1.    while(model->canFetchMore())  

2.      {  

3.          model->fetchMore();  

4.      }  

5.      

6.     for(int i = 0; i < model->rowCount(); i++)  

7.      

8.     {  

9.      

10.      qDebug()<<model->data(model->index(i,0)).toString();  

11.    

12.   }  




本文转自313119992 51CTO博客,原文链接:http://blog.51cto.com/qiaopeng688/1715890

相关文章
|
9月前
|
Go
golang面试官:for select时,如果通道已经关闭会怎么样?如果select中只有一个case呢?
golang面试官:for select时,如果通道已经关闭会怎么样?如果select中只有一个case呢?
97 1
|
5月前
|
Go
go 缓冲区循环 以及 select选择
go 缓冲区循环 以及 select选择
26 0
|
12月前
|
SQL 数据库
数据库sql语句(count(*)和count(字段))
数据库sql语句(count(*)和count(字段))
150 0
|
SQL 关系型数据库 MySQL
SELECT COUNT(*) 会造成全表扫描?回去等通知吧
网上有一种说法,针对无 where_clause 的 **COUNT(\*)**,MySQL 是有优化的,优化器会选择成本最小的辅助索引查询计数,其实反而性能最高,这种说法对不对呢 针对这个疑问,我首先去生产上找了一个千万级别的表使用 EXPLAIN 来查询了一下执行计划
426 0
|
数据库
还在用SELECT COUNT统计数据库表的行数?Out了
在ABAP里我们如果想用代码获得一个数据库表里有多少条记录,常规做法是使用SELECT COUNT。
133 0
还在用SELECT COUNT统计数据库表的行数?Out了
|
索引 关系型数据库 存储
InnoDB,select为啥会阻塞insert?
MySQL的InnoDB的细粒度行锁,是它最吸引人的特性之一。
674 0
|
存储 关系型数据库 索引
select,InnoDB为啥会阻塞insert?
MySQL的InnoDB的细粒度行锁,是它最吸引人的特性之一。
1454 0