Exception en Procedimiento Almacenado
Hola a todos...
Tengo un procedimiento almacenado, que recorre las tablas de mi base de datos, y a cada tabla le agrega un campo en función a otro. Por ejemplo: Campo1 --> Creo Campo 2 Ahora el Problema es si en alguna tabla falta ese "Campo1" se interrumpe el procedimiento y no se como generar algún mensaje o exception que me avise o informe que se produjo un error .... Cuando creo el "Campo2" lo hago de la siguiente forma: EXECUTE STATEMENT DESCRIPCION; Donde "DESCRIPCION" contiene la Sentencia SQL para crear el campo. Pero si esto falla, la ejecucion se corta y no me entero. Ahora la Pregunta: Como puedo saber si un Execute Statement se a ejecutado correctamente o no? Como puedo Mostrar un Excepcion cuando no se ejecuta correctamente? Saluda Atte Neeruu!!! :) |
Si estamos hablando de bases de datos Firebird:
|
Hola..... Si estamos hablando de Firebird....
El ejemplo que pones compila... No he Probado si anda.... pero compila.... El problema se me da cuando tengo esta situación: /* Excepcion para generar un mensaje de error */ create exception err_breakpoint 'Error';
Porque? no se... me gustaría saber, si alguien me pudiera explicar.... agredecido estare.... Saluda atte Neeruu!!!:) |
Ese suspend creo que no sirve para nada
|
En mi caso si sirve.... aparte después del execute sigo haciendo cosas.... y me da error de compilación....
Alguna idea de porque es así? Saludos Atte Neeruu!!!:) |
El problema es que todo el bloque que "puede fallar" debe ir entre un begin y un end.
Tiene que ver con las trasacciones. No recuerdo donde lo lei, pero parece ser que lo que va entre en un bloque, se realiza en una transacción y asi pueden capturarse. Esto si funciona, (lo he probado, FB 1.5):
|
La franja horaria es GMT +2. Ahora son las 02:49:44. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi