7

这些获取之间有什么区别。?请给我一个参考网站的例子以获得清晰的想法。我仍然对此感到困惑

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
4

1 回答 1

22

cr.dictfetchall()将以包含键、值的**字典列表**的形式为您提供所有匹配记录。

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

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

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)'。
于 2013-03-28T10:57:04.167 回答