lucasarts_18
11-12-2010, 21:47:03
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.
begin
select saldo_clie,
monto_autorizado
from cliente
where id_cliente = :p_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.
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.
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...
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.
begin
select saldo_clie,
monto_autorizado
from cliente
where id_cliente = :p_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.
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.
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...