Capturar erro do banco de dados
12/12/2003
0
estou com um pequeno problema, eu criei um formulário de erros para que todo erro ocorrido ou exceção no sistema será chamado este formulário, só que todas as minhas stored procedures no sql server tem tratamento de mensagem, caso aconteça alguma coisa no cadastro, alteração ele irá chamar mensagens como esta que segue abaixo:
if @CtCx = @CtContraPart
begin
select @errno = 95004,
@errmsg = ´Os Caixas para abertura e Contrapartida da abertura devem ser diferentes !!!´
goto error
end
Até aí blz, ele retorna a mensagem do erro e lança na tela do cliente. Só que eu teria que capturar o código do Erro como mostra acima ´95004´, e no meu form de erro, ele tem tratamento EDATABASEERROR e EDBENGINERERROR, só que ele não entra em nenhuma dessas duas classes de exceção, ele entra no EXCEPTION, só que no EXCEPTION eu não tenho como pegar o código do erro da stored procedure. Alguém sabe como resolver este problema? Qual classes de Exceção eu utilizarei para buscar este código de erro? Eu utilizo o BDE para conectar no banco.
Obrigado
Atenciosamente,
Halex Maciel
Analista de Sistemas
Cuiabá-MT
Halexmaciel
Posts
12/12/2003
Tnaires
Me desculpe perguntar isso, mas vc não deixou bem claro... Vc usou o método Message do Exception?
Ex
try // comandos except on E: Exception do begin ShowMessage(E.Message); end; end;
Sucesso.
12/12/2003
Halexmaciel
if @CtCx = @CtContraPart
begin
select @errno = 95004,
@errmsg = ´Os Caixas para abertura e Contrapartida da abertura devem ser diferentes !!!´
goto error
end
tenho que pegar o código ´95004´ entende?
Só que ele gera uma exceção que não é do tipo EDATABASEERROR OU EDBENGINERERROR. Ele só é capturado pela classe EXCEPTION, só que eu não pego o código quando cai neste tipo de exceção. Você pode ajudar? Obrigado
12/12/2003
Tnaires
A mensagem de erro pega beleza, mas o código do erro que dá bronca né?
Vejamos... A propriedade Message pega a mensagem certo? Tente usar a propriedade HelpContext pra pegar o código do erro.
Sucesso
Clique aqui para fazer login e interagir na Comunidade :)