Re: General database programming question - Mailing list pgsql-general

From Matthew O. Persico
Subject Re: General database programming question
Date
Msg-id 3BA16B0D.CF109315@acedsl.com
Whole thread Raw
In response to General database programming question  (Denis Gasparin <denis@edinet.it>)
List pgsql-general
Denis Gasparin wrote:
>

Use this:

> //db is a generic database connection object
>
> /* SOLUTION 1 */
> db.begin(); //begin transaction
> try:
>          db.query("UPDATE...."); //Execute a db query
>          db.commit();    //commit changes to database
> except:
>          //the query has generated an exception
>          db.rollback();
>

because it will catch any problem with the commit. Solution #2 won't.

Of course the ultimate solution is this (syntax altered for clarity,
assuming this is pseudocode anyway):

/* SOLUTION 3 */
db.begin(); //begin transaction
try{
         db.query("UPDATE...."); //Execute a db query
         db.commit();    //commit changes to database
}
except{
    try{
        //the query has generated an exception
            db.rollback();
    }
    except{
        // You're hosed. Leave and hope for the best
        exit;
    }
}

if your language allows "nested" try/exception blocks.

--
Matthew O. Persico

http://www.acecape.com/dsl
AceDSL:The best ADSL in Verizon area

pgsql-general by date:

Previous
From: haifa touati
Date:
Subject: ...
Next
From: "Mike S. Nowostawsky"
Date:
Subject: get certain # of recs