![]() |
EXCEPTION con parametros u otro comando para abortar
Utilizo firebird 1.5
¿ se puede definir una EXCEPTION con parametros ? ¿ como ? ó ¿ que otro comando puedo utilizar para abortar ? Al llamar a una EXCEPTION le quiero mandar el mensaje a mostrar gracias |
Hola fcios
Cita:
Dentro de un procedimiento o función puedes levantar la exception así:
Saludos |
Gracias Hector,
lo que quiero mostrar es distinto para cada registro y no me parece correcto crear una excepcion para cada valor de registro, lo que quiero hacer es llamar a una exepcion con un parametro, por ejemplo con el valor de un campo, o abortar un trigger de un delete y mostrar el valor de un campo ej. CREATE EXCEPTION mi_exception_1(PARAMETRO1 string); y la usaria: IF (VAR1>0) THEN EXCEPTION mi_exception_1(CAMPO2); gracias |
Puedes crear una exception con un mensaje de error genérico, por ejemplo:
y después le concatenas otros mensajes dependiendo del tipo de error
Saludos |
Por supuesto esa concatenación puede incluir algún campo de tus tablas, si es VARCHAR() lo concatenas directamente, si es de otro tipo puedes aplicar CAST();
Saludos |
Eso es lo que necesito pero no lo puedo hacer funcionar :(
tengo CREATE EXCEPTION ERR_GUARDAR_REG 'Error al guardar el registro : '; y la llamo con EXCEPTION ERR_GUARDAR_REG 'Error en CampoCadena ' || CAMPO_CADENA ; pero lo unico que me muestra es el mensaje de la excepcion 'Error al guardar el registro : ' ¿ que me falta ? :confused: gracias |
Acabo de hacer esta prueba y funciona
Esto lo ejecute en línea de comandos con ISQL desde la carpeta de FireBird 2.0 Código:
SQL> execute procedure new_procedure(0,0); |
como tenes definido el CREATE EXCEPTION ERR_GENERICO ?
si lo defino sin el mensaje me da error en ; CREATE EXCEPTION ERR_GENERICO; (estoy utilizando FB 1.5 y actualmente no puedo pasar a la 2.0 ) gracias |
Probablemente sea por la versión, la exception la creo de la manera habitual
|
bueno muchas gracias Hector, si se te ocurre otra idea bienvenida será, gracias
|
PERDON PERDON no me funcionaba porque la estaba disparando en otro triggger
ESTO FUNCIONA CORRECTAMENTE CREATE EXCEPTION ERR_GUARDAR_REG 'Error al guardar el registro : '; y la llamo con EXCEPTION ERR_GUARDAR_REG CAMPO_CADENA ; si la lllamo con un string mas campo_cadena me da error EXCEPTION ERR_GUARDAR_REG 'Error en CampoCadena ' || CAMPO_CADENA ; Pero con esto es suficiente MUCHAS GRACIAS HECTOR |
| La franja horaria es GMT +2. Ahora son las 09:52:43. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi