[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