[Python] Psycopg2 e passaggio parametri

simozack simozack a yahoo.it
Mer 27 Maggio 2009 10:36:14 CEST


Ciao a tutti,

sto diventando pazzo su un problema che riguarda il passaggio di
parametri nell'esecuzione di una query in psycopg2.

Anzi, credo che questo centri poco, visto il messaggio di errore...
Ma andiamo con ordine.

Ho una query:

   query_commessa = """select distinct commessa
                       from (select commessa from fattura_acquisti union all
                             select commessa from ore union all
                             select commessa as commessa from
fattura_vendite) as totale_commesse,
                             anagrafica_commessa
                       where commessa like '__C%'
                       and   codice = commessa
                       and   data_fine <= %(data_elaborazione)s
                       order by commessa"""

a cui, in fase di esecuzione, faccio il bind del parametro (tra
l'altro è la riga dopo):

   cur1.execute(query_commessa, {'data_elaborazione':datetime.date(2009,430)})

Risultato?

... (prima c'è il nome del file)...
   cur1.execute(query_commessa, {'data_elaborazione':datetime.date(2009,4,30)})
TypeError: 'dict' object does not support indexing

Ho provato quindi da Idle:

>>> import datetime
>>> mkd = datetime.date
>>> a = {'data_elaborazione':mkd(2009,4,30)}
>>> a
{'data_elaborazione': datetime.date(2009, 4, 30)}

Nessun errore, come mi aspetterei.

Qualcuno sa darmi un'idea di che cosa potrebbe essere?

Python 2.6.2, Windows XP, psycopg2 2.0.9

Grazie,
Simone


Maggiori informazioni sulla lista Python