Porque minha Exception dentro do BD executa mas não levanta a mensagem?

Firebird

16/01/2017

Olá boa tarde!

Alguém conseguiria me explicar porque esta exception executa mas não exibida a mensagem?

É o seguinte, antes de baixar um estoque de Promoção, verifico se tem qtde suficiente no estoque de promoção, caso não exista, disparo uma exception.
Fiz o teste, a exception é executada, ms mensagem não aparece.

===============================
SELECT CODPROD, QTDE
FROM CADPROD_PROMOCAO
WHERE (CODPROD =:CODPROD)
INTO :vCodprod, qtprom;
if (vCodprod > '') then
begin
if (:QTDE > QTPROM) then
exception QTDE_PROMOCAO;
end
===============================

CREATE EXCEPTION QTDE_PROMOCAO 'Exemplo teste de exception';

COMMENT ON EXCEPTION QTDE_PROMOCAO IS
'Qtde de promocao';
===============================

---------------------------------------------
Try
//----------------------------------//
//....Inicio do Start Transaction //
//----------------------------------//
DMCN.Start();
//-----------------------------------------//
//...Estorna Contas a Receber //
//-----------------------------------------//
IF (DMMVD_Ds_Movenda_state <> 'I') Then
Grddv.Estorna_Movenda_Receber(Codvenda);

Inherited;

//--------------------------------//
//...Commit //
//--------------------------------//
ErroSistema := 1;

DMCN.Commit(); //...Grava o Registro
Except on E: Exception do
Begin
Msg := 'ATENÇÃO!'+#13+'Aconteceu um erro ao gravar o registro!'+#13+#13+E.message;
Application.MessageBox(Pchar(msg),'Erro',MB_Ok+mb_IconError);
DMCN.Rollback(); //...Gerou um erro ao gravar
But_alterar.Down := true;
DMMVD.Cds_Movenda.Edit;
End;
End;
Antonio Jesus

Antonio Jesus

Curtidas 0

Respostas

Paulo Hendrix

Paulo Hendrix

16/01/2017

Este é, o código exato da sua Procedura, no seu sistema. manda informações de como estão as colunas no seu banco de dados. estão em INT BOOLEAN etc... pode ser um erro de conversão ou algo que ainda não pode ver.. se poder injetar mais infor, sera mais facil.. não esquece. quanto mais info mais rápido respostas ... banco de dados usado. dados sobre a tabela se as colunas estão em modo int boolean string etc.. ok abraço..
GOSTEI 0
POSTAR