请解释这些Python Fetch类型

时间:2013-03-28 10:47:11

标签: python openerp

这些提取有什么区别。 请给我一个参考网站的例子以获得清晰的想法。但是我很困惑它

res = cr.dictfetchall()

res2 = cr.dictfetchone()

res3 = cr.fetchall()

res4 = cr.fetchone()

cr是数据库游标(OPENERP 7)

中的当前行

前:

def _max_reg_no(self, cr, uid, context=None):
    cr.execute("""
    select register_no as reg_no
    from bpl_worker
    where id in (select max(id) from bpl_worker)
    """)
    res = cr.fetchone()[0]
    print (res)
    return res

1 个答案:

答案 0 :(得分:18)

cr.dictfetchall()将以**字典**的形式为您提供所有匹配的记录,其中包含键,值

cr.dictfetchone()cr.dictfetchall()的工作方式相同,只是它只返回单个记录。

cr.fetchall()会以 tupple列表的形式为您提供所有匹配的记录。

cr.fetchone()cr.fetchall()的工作方式相同,只是它只返回单个记录。

在您的给定查询中,如果您使用:

  1. cr.dictfetchall()将为您提供[{'reg_no': 123},{'reg_no': 543},]
  2. cr.dictfetchone()将为您提供{'reg_no': 123}
  3. cr.fetchall()会给你'[(123),(543)]'。
  4. cr.fetchone()会给你'(123)'。