Fórum Mostrar Exception #340693
20/04/2007
0
Bom estou querendo a seguinte orientação como faço para mostrar uma exception que eu criei como mensagem?
Por Exemplo:
Criei uma Stored Procedure da Seguinte Maneira:
SET TERM ^ ; CREATE PROCEDURE SP_BAIXAESTOQUE ( cod integer, quant numeric(15,2)) as declare variable qtatual numeric(15,2); begin select e.quantidade from estoque E where e.codproduto = :cod into :qtatual; if (:qtatual > :quant ) then begin update estoque E set E.quantidade = :qtatual - :quant where (E.codproduto = :cod); end else begin exception retiraestoque; end end^ SET TERM ; ^ GRANT SELECT,UPDATE ON ESTOQUE TO PROCEDURE SP_BAIXAESTOQUE; GRANT EXECUTE ON PROCEDURE SP_BAIXAESTOQUE TO SYSDBA;
Criei uma exception Assim:
CREATE EXCEPTION RETIRAESTOQUE ´quantidade excedente venda negada´;
Estou Utizando o Banco IB 6.5
Fiz uma conexão com minha SP Com o componente TIBStoredProcedure da guia Interbase e executo éla da seguinte maneira:
try begin spBaixa.ParamByName(´cod´).AsInteger:= StrToIntDef(Edit1.Text,0); spBaixa.ParamByName(´quant´).AsInteger:= StrToIntDef(Edit2.Text,0); spbaixa.ExecProc; frmDM.TEstoque.Refresh; end except spbaixa.Transaction.RollbackRetaining; end;
tudo funciona que é uma beleza só que quando cai no excpetion da minha SP a mensagem não é retornada Alguem poderia me dizer como Faço a mensagem da excption aparecer para o usuario no sistema?
sistema está sendo desenvolvido no delphi 7
Alecsandro Moura
Curtir tópico
+ 0Posts
20/04/2007
Fabiano Góes
try begin spBaixa.ParamByName(´cod´).AsInteger:= StrToIntDef(Edit1.Text,0); spBaixa.ParamByName(´quant´).AsInteger:= StrToIntDef(Edit2.Text,0); spbaixa.ExecProc; frmDM.TEstoque.Refresh; end except on e: Exception do begin spbaixa.Transaction.RollbackRetaining; raise Exception.Create(e.Message); end; end;
Gostei + 0
20/04/2007
Alecsandro Moura
estilo:
except begin spbaixa.Transaction.RollbackRetaining; MessageBox(Application.Handle,Pchar(´Venda execendete ao estoque"´),´Venda Negada, MB_OK + MB_ICONERROR);
Gostei + 0
21/04/2007
Marco Salles
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)