本文主要是介绍QSqlTableModel的canFetchMore、fetchMore效率太低,需替换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题描述:SQLITE数据库,使用QSqlTableModel获取行数,调用函数rowCount(),仅能获取256行,故使用下面代码获取实际行数:
while(m_model->canFetchMore()){m_model->fetchMore();}
但实际使用发现效率很低,一旦查询10万条以上的数据很卡,耗时在10s以上,无法使用,故用SQL的count语句替换:
m_sqlQuery = m_model->query();
QString sql2=QString("SELECT COUNT(*) FROM table_name WHERE xxxx");
bool b=m_sqlQuery.exec(sql2);
while(m_sqlQuery.next())
{qDebug()<<m_sqlQuery.value(0).toString();
}
上述耗时在毫秒级。
这篇关于QSqlTableModel的canFetchMore、fetchMore效率太低,需替换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!