2013-03-28 9 views
5

Qual è la differenza tra questi recupero.? per favore mi dia un esempio di sito di riferimento per ottenere idea.still chiaro sto confuso con essoSi prega di spiegare questi tipi di fetch Python

res = cr.dictfetchall() 

res2 = cr.dictfetchone() 

res3 = cr.fetchall() 

res4 = cr.fetchone() 

cr è la riga corrente, dal cursore di database (OpenERP 7)

es:

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

cosa è 'cr' nel codice di esempio? –

+0

@olly_uk: post amico modificato –

+3

[C'è una descrizione completa di ciascun metodo in PEP-249] (http://www.python.org/dev/peps/pep-0249/#cursor-methods) –

risposta

16

cr.dictfetchall() vi darà tutti i record corrispondenti sotto forma di elenco di ** ** dizionario contenente chiave, valore.

cr.dictfetchone() funziona allo stesso modo di cr.dictfetchall() tranne che restituisce solo record singolo.

cr.fetchall() vi fornirà tutti i record corrispondenti sotto forma di elenco di tupple.

cr.fetchone() funziona allo stesso modo di cr.fetchall() tranne che restituisce solo il record singolo.

Nella tua data query, se si utilizza:

  1. cr.dictfetchall() vi darà [{'reg_no': 123},{'reg_no': 543},].
  2. cr.dictfetchone() ti darà {'reg_no': 123}.
  3. cr.fetchall() ti darà '[(123), (543)]'.
  4. cr.fetchone() ti darà '(123)'.
+0

grazie arya ..u mi ha aiutato molte volte :-) –

+1

@AnneMary Grazie per il complimento. –

Problemi correlati