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...).
Almeno tornare indietro non dovrebbe essere una esigenza comune (e uno
può implementarlo lato client, facendo il caching delle ultime N righe).
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.
Per psycopg2 l'unica cosa che ho trovato è un esempio:
http://initd.org/svn/psycopg/psycopg2/trunk/examples/fetch.py
> [...]
Saluti Manlio Perillo
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python