Re: Excepciones en funciones sql

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Raul Andres Duque <ra_duque(at)yahoo(dot)com(dot)mx>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Excepciones en funciones sql
Date: 2007-06-13 15:17:25
Message-ID: 20070613151725.GA11499@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Raul Andres Duque escribió:
> Gracias Alvaro por tu respuesta.
>
> Pero entonces :
> 1. Cómo puedo saber si TODAS las sentencias SQL se ejecutaron
> correctamente?

Bueno, si la transaccion está en estado OK, entonces todas las
sentencias se ejecutaron correctamente

> o si actualizaron datos?

Eso lo puedes saber preguntandole cuantos registros actualizó
(cómo hacer eso, depende del driver y lenguaje que estés usando)

> 2. Si se genera un error se hace un ROLLBACK a la transacción en la cual se
> ejecuta (implicitamente) el SP?

Si se genera un error, se hace un rollback a la transaccion en curso, o
al savepoint en que se está ejecutando. Está de más decir que puedes
usar savepoints directamente con la orden SAVEPOINT.

Supongo que está de más decir que si tu transacción tiene una sola
sentencia entonces es una pérdida de tiempo abrir un savepoint ...

> Aunque por la respuesta anterior creo que la sugerencia es siempre usar
> algún pl, así sea suficiente con un SP sql.

Por supuesto que no. Usa SP cuando sean necesarios. En SQL plano
puedes hacer casi todo lo que necesitas, así que la mayoría del tiempo
no hacen falta los SPs. Alguna gente los prefiere de todas formas para
ahorrarse escribir middleware al lado de la aplicación. Eso ya depende
de la forma que quieras darle a tu aplicación.

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2007-06-13 16:12:19 Re: Funciones C
Previous Message Raul Andres Duque 2007-06-13 15:06:40 Re: Excepciones en funciones sql