[firebase-br] Capturando erro do Firebird

Alessandro Lúcio Cordeiro da Silva alecordeirosilva em yahoo.com.br
Sex Fev 3 13:04:57 -03 2006


Olá Pessoal.
   
  Se alguém puder me ajudar ficarei muito agradecido.

Fiz um procedimento que me traz dois parametros de saida o p_ok e o p_retorno.
   
  O p_ok é um sinalizador que indica se tudo ocorreu bem ou não e o p_retorno e a mensagem que pode ser que tudo deu certo ou que deu um erro, que posso provocar  como o caso do cpf invalido, mas queria a mensagem do firebird. Como captura as mensagens do Firebird pra passar pro parametro p_retorno.

Create  procedure cadastro_cliente (P_PK_CLIENTE          integer,
                                                    P_NOME                varchar(50)
                                                    )
returns (p_retorno varchar(100),
         p_ok      char(1))
as
declare variable v_cpf_valido char(1);
begin
    -- Executar o testa cpf
    execute procedure validacpf(:p_cpf) returning_values :v_cpf_valido;
    if (:v_cpf_valido = 'F') then--Se cpf invalido
  begin
    p_retorno = 'CPF do Cliente Inválido';
    p_ok      = 'N';
    exit;
  end;
   
    -- Sessão de tratamento
    begin
      insert into cliente (PK_CLIENTE,
                              NOME,
                         values
                       (gen_id(gen_cliente,1),
                        :P_NOME,
    p_retorno = 'Registro Inserido com Sucesso';
      p_ok = 'S';
      -- Se ocorreu algum erro
      when any do
      begin 
        p_ok = 'N';
        p_retorno = 'Ocorreu um erro Cód.'||SQLCODE||' - ' <É aqui que quero concatenar com o texto do firebird>
      end;
  end
end.
   
  OBS.: NÃO QUERO CRIAR UMA EXCESSÃO E NEM DEIXAR O FIREBIRD GERAR UMA EXCESSÃO.


		
---------------------------------
 Yahoo! doce lar. Faça do Yahoo! sua homepage.


Mais detalhes sobre a lista de discussão lista