Re: [Python] Psycopg2 e passaggio parametri

2009-05-27 Per discussione simozack
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-05-27 Per discussione Marco Beri
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

2009-05-27 Per discussione 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"""

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