使用pyqt检索postgres中连续的所有记录

时间:2017-07-31 12:50:29

标签: python pyqt4

我正在编写一个工具,在PostgreSQL和PyQt4的帮助下生成报告。

我在我的数据库中写了一个查询:

 sql = "SELECT field1, field2, field3 FROM my_table ORDER BY id ASC"
 query = QSqlQuery(self.db) # self.db holds my connection to the database
 query.exec_(sql)

这很好用我现在可以从查询中获取这样的值:

 while query.next():
    print query.record().value("field1")

下一步是将结果存储在容器(列表/字典)中,并对报告进行计算。然而,在我的情况下,我有许多字段,我需要存储和逐个调用似乎很长一段路。

通过阅读QSqlqueryQSqlResult没有带来任何光明。我尝试使用query.result().boundValues(),但只返回空列表。

我的预期结果是一个包含行的所有值的列表。

问题: 有没有办法从PyQt查询中检索一行中的所有数据?

2 个答案:

答案 0 :(得分:1)

select语句中的列从左到右编号(从零开始),因此您可以这样做:

indexes = range(num_cols)
while query.next():
    row = [query.value(index) for index in indexes]

答案 1 :(得分:0)

sql=("select count(id) as total_user from datos")
query.exec_(sql)

query.next()
user=query.record().value("total_user")
self.lbl_user.setText(str(user))