[Linuxtrent] Re: problema con treeview e formattazione dei numeri

  • From: Lele Gaifax <lele@xxxxxxxxxxxxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Thu, 29 Dec 2005 17:57:32 +0100

luca ha scritto:

        connessione=sqlite.connect("db")
        cursore=connessione.cursor()
        cursore.execute("select * from test")
        for y in cursore.fetchall():
                connessione=sqlite.connect("db")
                cursore=connessione.cursor()
                cursore.execute("select * from vasca")
                for a in cursore.fetchall():
>               ....

Perdona, salta all'occhio: la connessione al DB è ragionevole farla una tantum, fuori da un ciclo, e a maggior ragione fuori da due cicli nidificati come nel tuo caso. Data la natura del DB che usi è forse poco importante, ma il codice mostrato è, permettimi, abominevole :-) Qualora cambiassi DB, magari usandone uno remoto, il codice qui sopra soffrirebbe di problemi di prestazione, e di memoria...

Instanziati UNA connessione, e richiedi a quella i vari cursori che ti servono, magari senza chiamarli tutti uguali. Io userei un tocco di codice più simile a questo:

connessione=sqlite.connect("db")
testata=connessione.cursor()
vasche=connessione.cursor()
testata.execute("SELECT a,b,c FROM test")
for rectestata in testata:
    vasche.execute("SELECT d,e,f FROM vasche")
    for vasca in vasche:
        print "Vasca:", vasca
connessione.commit()

Non è così evidente cosa vuoi ottenere, col codice che hai mostrato: il loop più interno (con la variabile di loop che si chiama "a") fa riferimento SOLO alla variabile "y", che fa capo al loop intermedio...

Hope this helps,
ciao, lele.
--
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: