From: | Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl> |
---|---|
To: | Milton inostroza <minoztro(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Rescatar exception de base de datos |
Date: | 2005-01-23 14:51:12 |
Message-ID: | 20050123145112.GB4406@dcc.uchile.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On Sat, Jan 22, 2005 at 11:03:19PM -0300, Milton inostroza wrote:
> Hola lista: Saben estoy desarrollando una aplicación y necesito
> rescatar las exception que me generen las sentencias sql que estoy
> realizando, estoy utilizando pypgsql y no quiero utilizar if en el
> lenguaje que estoy ocupando (python) para manejar las posibles
> exception, quiero que según el mensaje de error que me genere el motor
> de base de datos postgreSQL el programa sea capaz de saber que hacer.
Hola,
Actualmente esto se puede hacer solo en funciones PL/pgSQL en la version
8.0. Antes que eso, no habia suficiente infraestructura para permitirlo
(a menos que construyeras un pseudo-driver que se encargara de hacerlo
por ti, el cual tendria que usar if para capturar los codigos de error,
y levantar excepciones en Python).
En el PL/pgSQL de 8.0 puedes construir bloques BEGIN/EXCEPTION/END en
los cuales capturar los errores, y actuar adecuadamente. Revisa la
documentacion. Obviamente esto te va a exigir usar PL/pgSQL para hacer
muchas cosas que de otra forma podrias hacer directamente ...
Otra alternativa seria usar SAVEPOINTs en tu aplicacion, pero entonces
tendrias que examinar los codigos de error, hacer ROLLBACK TO, y actuar
en consecuencia. Ahora que lo pienso, es posible que puedas hacer esto
con el pseudo-driver que te mencionaba mas arriba. (Observa que lo que
comparas son codigos de error (SQLSTATE, en realidad son "codigos de
estado") y no mensajes de error.
> por vuestra ayuda gracias, otra inquietud que me queda es si estoy
> bien en mi pensamiento
Yo diria que es algo razonable de pedir.
--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
"Cómo ponemos nuestros dedos en la arcilla del otro. Eso es la amistad; jugar
al alfarero y ver qué formas se pueden sacar del otro" (C. Halloway en
La Feria de las Tinieblas, R. Bradbury)
From | Date | Subject | |
---|---|---|---|
Next Message | Jorge Pérez | 2005-01-23 16:26:04 | Tablas para ubicación geográfica |
Previous Message | Milton inostroza | 2005-01-23 02:03:19 | Rescatar exception de base de datos |