[Python] Riutilizzo del cursor nelle query

Manlio Perillo manlio.perillo a gmail.com
Gio 16 Gen 2014 11:31:08 CET


On 16/01/2014 10:51, piergiorgio pancino wrote:
> Ciao,
> volevo sapere se esiste una best practice per quanto riguarda
> l'esecuzione delle query e l'uso dell'oggetto cursor.
> Per contestualizzare un po' di più ho una classe che in fase di __init__
> si collega al database, all'interno della classe una serie di funzioni
> che fanno delle query.
> Attualmente __init__ crea una istanza di cursor che viene riutilizzata
> per tutte le query.
>
> self.conn = pyodbc.connect(self.DSN,autocommit=False)
> self.conn=conn
> self.cur=conn.cursor()
> (sono omessi i controlli vari)
>
> questo modo di fare è secondo voi corretto o è meglio ad ogni query
> creare e poi richiudere un nuovo cursor ?
>

Ciao.
Innanzitutto prova a leggere la PEP 249:
www.python.org/dev/peps/pep-0249/

Al momento non ricordo, ma dovrebbe dare delle indicazioni riguardo 
l'utilizzo.

Infine, ti può essere utile sapere *come* i cursori sono utilizzati in SQL:
http://www.postgresql.org/docs/9.3/interactive/ecpg-commands.html#ECPG-CURSORS

Come vedi è abbastanza diverso da come viene fatto nella DBAPI; un 
cursore viene creato per una query specifica, ed una sola.


Ciao  Manlio


Maggiori informazioni sulla lista Python