[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