[firebase-br] Capturando erro do Firebird

Alisson arsuart em uol.com.br
Qua Fev 8 17:34:37 -03 2006


Mas neste momento o Firebird nao vai emitir mensagem alguma neh....???
pelo q entendi.. vc executa um procedimento ou funçao validando o CPF.. e 
esse procedimento vai lhe retornar True ou False.. ai baseando nesta 
informaçao.. vc vai saber c deu certo ou nao... nao eh isto...??? entao acho 
q realmente nao teria a mensagem do banco.. apenas ele vai executar 
naturalmente.. e fazer o q vc criou.... c eu entendi corretamente o q vc 
quer...!!!




"Alessandro Lúcio Cordeiro da Silva" 
<alecordeirosilva em yahoo.com.br> escreveu na 
mensagem news:20060203150457.60216.qmail em web35903.mail.mud.yahoo.com...
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.
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa







Mais detalhes sobre a lista de discussão lista