[firebase-br] Tratamento de erros em SP II "A missão"
Luiz Carlos
luiz em rolamentosradial.com.br
Sex Nov 25 14:26:40 -03 2005
Boa Tarde Lista!
Consegui criar uma stored procedure da seguinte forma:
CREATE PROCEDURE NOVO_PEDIDO (
PE_COD_COTACAO INTEGER,
PE_DATA DATE,
PE_CODCONTA INTEGER,
PE_OBS_ESTOQUE BLOB SUB_TYPE 1 SEGMENT SIZE 80,
PE_COND_PGTO INTEGER,
PE_OBS_NOTA BLOB SUB_TYPE 1 SEGMENT SIZE 80,
PE_TIPO_FRETE INTEGER,
PE_TIPO_PEDIDO CHAR(1),
PE_TRANSPORTADORA INTEGER,
COD_USU INTEGER,
PE_REF_PED_CLIENTE VARCHAR(50))
RETURNS (
O_MENSAGEM VARCHAR(255))
AS
DECLARE VARIABLE V_DATA_ERRO INTEGER;
begin
insert into pedido_venda values
(:pe_cod_cotacao,0,null,null,:pe_cond_pgto,:pe_transportadora,:pe_codconta,:pe_ref_ped_cliente,null,:pe_obs_estoque,:pe_obs_nota,null,:pe_tipo_frete,:pe_tipo_pedido);
o_mensagem = 'Pedido Efetuado com Sucesso! Aguardando Liberação ou
Faturamento!';
when SQLCODE -530 do
begin
select current_date from rdb$database into :V_DATA_ERRO;
insert into log values (:V_DATA_ERRO,'ERRO AO CRIAR UM NOVO PEDIDO,
A SEGUINTE COTAÇÃO: '||Cast(:pe_cod_cotacao as varchar(4)) ||' NÃO
EXISTE',:cod_usu);
o_mensagem = 'Ocorreu um erro ao gerar o pedido de vendas! Entre em
contato com o CPD para maiores informações!';
suspend;
end
end
ela compila belezinha, mas quando vou debugar ela e propositalmete jogar
um valor que vá gerar o erro o banco informa que o erro ocorre mas não
passa pelo bloco de tratamento de erro! :-\
o que estou fazendo de errado por favor!
att.
--
------------------------------------------------------------------------
Luiz Carlos da Silva Soares
Analista de Sistemas
Importadora de Rolamentos Radial Ltda.
[11] 3346-3731
www.rolamentosradial.com.br <http://www.rolamentosradial.com.br/>
luiz em rolamentosradial.com.br <mailto:luiz em rolamentosradial.com.br>
Mais detalhes sobre a lista de discussão lista