[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