Mudar Mensagem de Erro
Criei a Integridade Referencial no meu Banco de Dados. Agora qdo vou excluir um registro através do Sistema ele barra! Porem coloca aquela horrivel mensagem em Inglês.
Como faço para tratar isso?
Gostaria que alguém desse um exemplo, pois já tentei usando exception no banco e no sistema mas não consegui.
Obrigado.
Como faço para tratar isso?
Gostaria que alguém desse um exemplo, pois já tentei usando exception no banco e no sistema mas não consegui.
Obrigado.
Marcelootone
Curtidas 0
Respostas
Afarias
18/07/2003
use blocos TRY..EXCEPT para capturar a exceção e dar sua mensagem.
GOSTEI 0
Marcelootone
18/07/2003
Tá isso eu já sei!!!
mas como? quando? onde? no Delphi ou no Banco? o que eu vou testar?
essas são minhas dúvidas!!!
mas como? quando? onde? no Delphi ou no Banco? o que eu vou testar?
essas são minhas dúvidas!!!
GOSTEI 0
Afarias
18/07/2003
|mas como?
try
except
{tratamento de erro}
end;
|quando?
Quando vc precisar. Ex, quando for salvar um registro (em um POST por ex)
|onde? no Delphi ou no Banco?
Como assim?? No Interbase não tem TRY...EXCEPT
|o que eu vou testar?
Para saber o erro?? Depende do tipo de erro. Vc pode testar a mensagem (E.Message) ou, se o erro for EIBInterbaseError vc pode testar os códigos (SQLCode, ErrorCode)
|essas são minhas dúvidas!!!
Espero q isso ajude. Dê uma lida em algum material sobre tratamento de exceções no Delphi.
Abraço
try
except
{tratamento de erro}
end;
|quando?
Quando vc precisar. Ex, quando for salvar um registro (em um POST por ex)
|onde? no Delphi ou no Banco?
Como assim?? No Interbase não tem TRY...EXCEPT
|o que eu vou testar?
Para saber o erro?? Depende do tipo de erro. Vc pode testar a mensagem (E.Message) ou, se o erro for EIBInterbaseError vc pode testar os códigos (SQLCode, ErrorCode)
|essas são minhas dúvidas!!!
Espero q isso ajude. Dê uma lida em algum material sobre tratamento de exceções no Delphi.
Abraço
GOSTEI 0
Marcelootone
18/07/2003
Me desculpe mas continuei sem as respostas que preciso. E para sua informação o Interbase tem excepty, você pode usa-lo em uma procedure dentro do banco.
O erro que estou tentando tratar é no evento Delete. Quando tento excluir um registro que faz referência a outro (Integridade Referêncial, Primary Key, Foreign Key) o Delphi me retorna uma mensagem de erro que creio eu sejá do Interbase.
Já tentei fazer o tratamento de try excepty no evento OnDeleteError do IBDataSet, mas não consegui, por isso disse que precisava de um exemplo.
Pode me ajudar?
O erro que estou tentando tratar é no evento Delete. Quando tento excluir um registro que faz referência a outro (Integridade Referêncial, Primary Key, Foreign Key) o Delphi me retorna uma mensagem de erro que creio eu sejá do Interbase.
Já tentei fazer o tratamento de try excepty no evento OnDeleteError do IBDataSet, mas não consegui, por isso disse que precisava de um exemplo.
Pode me ajudar?
GOSTEI 0
Afarias
18/07/2003
|E para sua informação o Interbase tem excepty, você pode usa-lo em
|uma procedure dentro do banco.
Não, não existe tal comando no IB. Vc pode sim, criar uma exceção com uma mensagem de erro com o comando:
CREATE EXCEPTION nome_exceção ´mensagem de erro´;
e, gerar essa exceção numa trigger ou procedure com:
EXCEPTION nome_exceção;
É verdade q vc pode tratar um erro do banco no próprio banco (em StoredProcs ou Triggers), mas ai o comando é WHEN DO
Tá tudo na documentação, é só parar pra ler um pouco.
|O erro que estou tentando tratar é no evento Delete. Quando tento |excluir um registro que faz referência a outro (Integridade Referêncial, |Primary Key, Foreign Key) o Delphi me retorna uma mensagem de erro |que creio eu sejá do Interbase.
Vc tem certeza que leu pelo menos minha mensagem anterior?? Dê uma olhadina de novo...
.
.
.
viu?? lá tem:
´Quando vc precisar. Ex, quando for salvar um registro (em um POST por ex)´
é só trocar o POST pelo DELETE ok?!
try
MeuIBDataSet.Delete;
except
on EIBInterbaseError do
{tratamento de erros do IB}
end;
Espero q isso ajude.
T+
|uma procedure dentro do banco.
Não, não existe tal comando no IB. Vc pode sim, criar uma exceção com uma mensagem de erro com o comando:
CREATE EXCEPTION nome_exceção ´mensagem de erro´;
e, gerar essa exceção numa trigger ou procedure com:
EXCEPTION nome_exceção;
É verdade q vc pode tratar um erro do banco no próprio banco (em StoredProcs ou Triggers), mas ai o comando é WHEN DO
Tá tudo na documentação, é só parar pra ler um pouco.
|O erro que estou tentando tratar é no evento Delete. Quando tento |excluir um registro que faz referência a outro (Integridade Referêncial, |Primary Key, Foreign Key) o Delphi me retorna uma mensagem de erro |que creio eu sejá do Interbase.
Vc tem certeza que leu pelo menos minha mensagem anterior?? Dê uma olhadina de novo...
.
.
.
viu?? lá tem:
´Quando vc precisar. Ex, quando for salvar um registro (em um POST por ex)´
é só trocar o POST pelo DELETE ok?!
try
MeuIBDataSet.Delete;
except
on EIBInterbaseError do
{tratamento de erros do IB}
end;
Espero q isso ajude.
T+
GOSTEI 0