使用pyqt在postgres中连续检索所有记录
Retrieving all records in a row in postgres with pyqt
我正在编写一个借助 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")
下一步是将结果存储在容器(列表/字典)中并为报告进行计算。但是,就我而言,我有许多需要存储的字段,一个一个地调用所有字段似乎绕了很长的路。
通过阅读了解QSqlquery and QSqlResult并没有带来任何启发。我尝试使用 query.result().boundValues()
但只得到空列表 return.
我的预期结果是一个包含一行所有值的列表。
问题:
这有一种方法可以从 PyQt 的查询中检索一行中的所有数据吗?
select语句中的列是从左到右(从零开始)编号的,所以你可以这样做:
indexes = range(num_cols)
while query.next():
row = [query.value(index) for index in indexes]
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))
我正在编写一个借助 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")
下一步是将结果存储在容器(列表/字典)中并为报告进行计算。但是,就我而言,我有许多需要存储的字段,一个一个地调用所有字段似乎绕了很长的路。
通过阅读了解QSqlquery and QSqlResult并没有带来任何启发。我尝试使用 query.result().boundValues()
但只得到空列表 return.
我的预期结果是一个包含一行所有值的列表。
问题: 这有一种方法可以从 PyQt 的查询中检索一行中的所有数据吗?
select语句中的列是从左到右(从零开始)编号的,所以你可以这样做:
indexes = range(num_cols)
while query.next():
row = [query.value(index) for index in indexes]
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))