Ir al contenido


Foto

Duda con manejo de excepciones en Firebird


  • Por favor identifícate para responder
4 respuestas en este tema

#1 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 17 abril 2014 - 08:53

Tengo un stored procedure donde al darse una determinada condición como la siguiente:



delphi
  1. If (:max_cred_cte < :cred_actual_cte) then



debe devolver un mensaje de error y cancelar la transacción.  Esto en otros motores puede solucionarse lanzando una excepción. ¿Cómo puedo hacerlo en firebird?

gracias amigos

  • 0

#2 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

Escrito 17 abril 2014 - 09:06

Primero que todo debes crear la excepción de la siguiente manera:


delphi
  1. CREATE EXCEPTION VALOR_CREDITO_INCORRECTO 'El valor actual del crédito excede el cupo del cliente.';



Luego la llamas dentro del sp:



delphi
  1. If (:max_cred_cte < :cred_actual_cte) then
  2. EXCEPTION VALOR_CREDITO_INCORRECTO;



Saludos.

PD: La excepción es independiente del SP y puede ser llamada desde cualquier Trigger o SP.
  • 0

#3 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 17 abril 2014 - 09:16

Vaya que sencillo de hacerse.

Muchas gracias por el código
  • 0

#4 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

Escrito 17 abril 2014 - 09:22

Vaya que sencillo de hacerse.


En Firebird todo es muy sencillo e intuitivo.  :p

Saludos.
  • 0

#5 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 19 abril 2014 - 03:16

...y admite parametros, puedes poner en el mensaje el credito total excedido por ejemplo!
  • 0




IP.Board spam blocked by CleanTalk.