[Python] Per gli esperti di sql

Diego Barrera diegonebarrera a yahoo.it
Gio 14 Maggio 2015 21:31:57 CEST


Il 14/05/2015 15:07, Riccardo Brazzale ha scritto:
> Ciao,
>
> Mi connetto a un database mysql con mysql.connector ma potrebbe essere 
> qualsiasi altro motore DB. So che PG sarebbe passerebbe pił 
> innosservato in questa ML :-)
>
> Faccio una semplice sql:
>
> sql = "SELECT * FROM table WHERE campo 1 = %s AND campo2 = %s"
>
> curs.execute(sql, (var1, var2, ))
>
> Fin qui tutto ok.
>
> Ora ipotizziamo che l' sql stia all'interno di un ciclo che sta 
> girando su svariate centinaia di migliaia di combinazioni di var1 e 
> var2 ed a un certo punto fallisca in quanto var1 o var2 contengono 
> valori che non vanno bene per il rispettivo campo.
>
> Come faccio a fare una cosa del tipo:
>
> try:
> curs.execute(sql, (var1, var2, ))
>
> except:
>
> print(ultima_istruzione_sql_eseguita)
>
> in modo che ultima_istruzione_sql_eseguita sia
> "SELECT * FROM table WHERE campo1 = 'ABCDEF' AND campo2 = '\x3BRGF'"?
>

Se prima del try ti crei la stringa?

curr_sql = sql % (var1, var2)
try:
     curs.execute(curr_sql)
except:
     print curr_sql

Magari mettici pure l'errore generato..



Maggiori informazioni sulla lista Python