Ver Mensaje Individual
  #1  
Antiguo 11-12-2010
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Reputación: 21
lucasarts_18 Va por buen camino
Capturar excepción Firebird en app cliente

Estimados.

Me encuentro desarrollando unas validaciones mediante unos SP desde Firebird, ya que me permite controlar de manera más fácil las reglas de negocio.

Pongo acá un ejemplo.

Código SQL [-]
begin
  select saldo_clie,
         monto_autorizado
  from cliente
  where id_cliente = _id_cliente
  into :v_saldo, :v_monto_aut;
  if (not v_monto_aut > 0) then
     exception monto_no_aut;
  if (not v_saldo >= p_monto) then
     exception sobrepasa_saldo;
end

y desde delphi lo capturo de la siguiente forma.


Código Delphi [-]
begin
   try
   begin
      if Edt_CCorriente.Text <> '' then
      begin
         ZSP_ValSaldoClie.ParamByName('p_id_cliente').AsInteger := f_IdCliente;
         ZSP_ValSaldoClie.ParamByName('p_monto').AsInteger := StrToInt(Edt_CCorriente.Text);
         ZSP_ValSaldoClie.ExecProc;
      end;
      if f_MontoPago <> 0 then
         MessageDlg('Monto no cuadra con total documento', mtError, [mbOk], 0)
      else
         ModalResult := MrOk;
   end
   except on E: Exception do
      MessageDlg(E.Message , mtError, [mbOk], 0);
   end
end;



El problema que cuando lo muestro desde delphi me aparece la siguiente leyenda.

Código:
SQL Error:  exception 14 SOBREPASA_SALDO !Sobrepasa saldo permitido de la Cta Corriente! At procedure 'SP_VAL_MONTOAUT'. Error Code: -836. exception  The SQL: EXECUTE PROCEDURE SP_VAL_MONTOAUT(?,?);
Siendo que lo unico que quiero mostrar es "!Sobrepasa saldo permitido de la Cta Corriente!"

Existe la manera de manipular ese String que devuelve Firebird.?

Gracias...
__________________
No todo es como parece ser...
Responder Con Cita