Re: General database programming question

Поиск
Список
Период
Сортировка
От Matthew O. Persico
Тема Re: General database programming question
Дата
Msg-id 3BA16B0D.CF109315@acedsl.com
обсуждение исходный текст
Ответ на General database programming question  (Denis Gasparin <denis@edinet.it>)
Список 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 по дате отправления:

Предыдущее
От: haifa touati
Дата:
Сообщение: ...
Следующее
От: "Mike S. Nowostawsky"
Дата:
Сообщение: get certain # of recs