[Python] [Python e PostgreSQL] All'interno delle eccezioni, le transazioni si comportano diversamente?

Marco Mariani birbag a gmail.com
Lun 25 Ott 2010 08:20:57 CEST


2010/10/25 Marco Fochesato <marcofoc a libero.it>

try:
>        cur.execute(update, (nuovo_valore, valore_statico))
>        connDB.commit()
> except psycopg2.IntegrityError:
>


Ti suggerisco un altro approccio. Fai una SELECT sulla tabella nazioni, e
regolati di conseguenza. In questo modo funzionera' tutto a prescindere
dalle librerie, e da come gestiscono le transazioni. Ci sara' BEGIN
all'inizio, e COMMIT alla fine. Niente rollback e ri-begin etc.etc.

Quando scrivi codice misto python/sql, riserva le eccezioni di integrita' ai
casi che tuo programma non ha previsto, e che provvederai a gestire come
bug. In questi casi, ci sara' BEGIN all'inizio, ROLLBACK alla fine, errore a
schermo o per email, fine.

Grace Hopper disse "it's easier to ask forgiveness than it is to get
permission".. ma ha inventato il COBOL, e in SQL le best practice sono altre
:)
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: http://lists.python.it/pipermail/python/attachments/20101025/d8bd69a5/attachment.htm 


Maggiori informazioni sulla lista Python