Re: [Python] Psycopg2 e passaggio parametri
Il 27 maggio 2009 10.52, Marco Beri ha scritto: > 2009/5/27 simozack >> >> 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""" > > Cos'è quel "__C%" ? Ho delle commesse che sono composte da 2 cifre per l'anno e una lettera (C sono quelle che mi interessano, V o Z o B o D sono commesse che non mi serve valorizzare) più un numero progressivo. > Secondo me hai beccato un problema simile a questo: > http://lists.initd.org/pipermail/psycopg/2004-October/003131.html > > Prova a sostituirlo con "__C%%" Beccato! Grazie mille, Simone ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Psycopg2 e passaggio parametri
2009/5/27 simozack > 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""" Cos'è quel "__C%" ? Secondo me hai beccato un problema simile a questo: http://lists.initd.org/pipermail/psycopg/2004-October/003131.html Prova a sostituirlo con "__C%%" Ciao. Marco. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] Psycopg2 e passaggio parametri
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 ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python