2010/10/25 Marco Fochesato <span dir="ltr">&lt;<a href="mailto:marcofoc@libero.it">marcofoc@libero.it</a>&gt;</span><br><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">


try:<br>
        cur.execute(update, (nuovo_valore, valore_statico))<br>
        connDB.commit()<br>
except psycopg2.IntegrityError:<br></blockquote><div><br><br>Ti suggerisco un altro approccio. Fai una SELECT sulla tabella nazioni, e regolati di conseguenza. In questo modo funzionera&#39; tutto a prescindere dalle librerie, e da come gestiscono le transazioni. Ci sara&#39; BEGIN all&#39;inizio, e COMMIT alla fine. Niente rollback e ri-begin etc.etc.<br>

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

<br>Grace Hopper disse &quot;it&#39;s easier to ask forgiveness than it is to get permission&quot;.. ma ha inventato il COBOL, e in SQL le best practice sono altre :)<br><br><br></div></div>