[Python] next record in mysqldb

Paolo Amodio dixie a dixienet.it
Lun 1 Ott 2007 18:11:50 CEST


Il giorno 01/ott/07, alle ore 17:56, Daniele Varrazzo ha scritto:

> Manlio Perillo ha scritto:
>> Paolo Amodio ha scritto:
>>> Buon giorno a tutti.
>>> Una breve domanda.
>>> Eseguita una query e ritornati i risultati ho la necessità di  
>>> avanzare, o retrocedere, di un record (i risultati popolano dei  
>>> campi in wxPython).
>>> Attualmente e per il momento ho creato una funzione che, ricevuto  
>>> il valore attuale del record (in realtà del campo ID), effettua  
>>> una nuova query.
>>> Il sistema mi sembra macchinoso.
>>> Esiste qualche cosa di migliore?
>>>
>> Si, usare i cursori lato server.
>> PostgreSQL li supporta, e sembra che anche MySQL dalla versione  
>> 5.0.2 lo faccia.
>> http://dev.mysql.com/doc/refman/5.0/en/cursor-restrictions.html
>
> Per quanto riguarda MySQLdb si possono avere cursori lato server  
> usando la classe SSCursor o altre classi derivate dal  
> CursorUseResultMixIn, ma questo non implementano il metodo scroll,  
> per cui indietro non si torna (ma non è idiota? mah...).
>
> La classe CursorStoreResultMixIn, da cui deriva il normale Cursor,  
> invece implementa il metodo scroll(), che può essere usato per  
> tornare indietro. Ma tutto il dataset viene caricato nel client.
>
> La documentazione a riguardo credo sia zero: occorre leggersi  
> "MySQLdb.cursor.py" per capirci qualcosa.
>
> Paolo, se finora hai usato "cnn.cursor()" senza parametri, allora  
> hai sempre usato cursori client-side: usa cur.scroll(-1) per  
> tornare indietro di un record.
>
> In PostgreSQL ci sono i named cursor per fare queste cose: non so  
> se scrollano all'indietro ma, considerando la sanità mentale che  
> caratterizza il mondo PG, immagino di sì. Credo che all'OP gliene  
> freghi il giusto comunque.
>
> -- 
> Daniele Varrazzo - Develer S.r.l.
> http://www.develer.com
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python
>

Grazie Daniele. In effetti mi ero già picchiato con quanto mi stai  
dicendo ma... è vero la doc è praticamente inesistente.
Mi metto al lavoro ;-)

a presto


Paolo Amodio
dixie a dixienet.it
www.dixienet.it





Maggiori informazioni sulla lista Python