PYQT5 QSqlQueryModel/QSqlTableModel 仅能获取256行的问题

1.从数据库中获取数据行数,使用QSqlQueryModel,数据量有1891条,但返回的结果总是256

# 得到记录数
    def getTotalRecordCount(self):
        self.queryModel.setQuery("SELECT * FROM h_info")
        self.totalRecord = self.queryModel.rowCount()return

2.网上查询结果原因是QSqlTableModel  select数据完成后,当数据记录数目多于256时,rowCount 返回值最大为256.

为了强制获取整个数据集,要实现返回所有结果,则需要添加如下代码,如下所示:

 # 得到记录数
    def getTotalRecordCount(self):
        self.queryModel.setQuery("SELECT * FROM h_info")
        # QSqlTableModel  select数据完成后,当数据记录数目多于256时,rowCount 返回值最大为256.为了强制获取整个数据集
        # 所以必须实现以下,否则返回256
        while(self.queryModel.canFetchMore()):
            self.queryModel.fetchMore()
        self.totalRecord = self.queryModel.rowCount()return

 

posted @ 2018-12-12 20:45  kennyhip  阅读(4519)  评论(0)    收藏  举报