2013-03-28 6 views
5

これらのフェッチの違いは何ですか? 明確なidea.stillを取得するために私に参照サイトの例を与えてください、私はこれらのPythonフェッチタイプについて説明してください

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 
+3

あなたのサンプルコードでは 'cr'とは何ですか? –

+0

@olly_uk: 編集後の友だち –

+3

[PEP-249の各メソッドの完全な説明があります](http://www.python.org/dev/peps/pep-0249/#cursor-methods) –

答えて

16

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)'を与えます。
+0

ありがとうarya ..uは私に多くの時間を助けました:-) –

+1

@AnneMary賛辞をありがとう。 –

関連する問題