Fórum Tratamento de erro #233097

19/05/2004

0

Como trato erro de relacionamento no Delphi 6 (ADO), usando Access 2000?


D4rk Schn31d3r

D4rk Schn31d3r

Responder

Posts

19/05/2004

Lucas Silva

try
// aqui vc coloca o código
except ShowMessage(´Ocorreu um erro!´);
end;



Responder

Gostei + 0

19/05/2004

D4rk Schn31d3r

Ok, mas em q evento de q objeto?

OBS: O tratamento de erro q estou me referindo é para relacionamentos, isto é, quero gerar mensagens qd eu tento deletar 1 registro q é pai de um outro, ou qd tento duplicar o valor de 1 campo com o mesmo valor, etc.


Responder

Gostei + 0

19/05/2004

Tnaires

De uma olhada nos eventos OnPostError e OnDeleteError, dos DataSets. Uma das informaçoes q eles passam e justamente a excecao liberada na tentativa de violaçao de regra de integridade.


Responder

Gostei + 0

19/05/2004

D4rk Schn31d3r

Então vou ter q fazer isso pra cada dataset?!? Ai vai dar muito trabalho (ainda mais q meu sist. tem uma penca destes), ..., usando Delphi com SQL Server, é só utilizar o objeto Application Events, q ele trata tudo qt é tipo de erro de relacionamento, mas ele não funciona com o Access 2000! Tem q ter uma outra forma de tratar esses tipos de erros usando algum outro objeto do Delphi.


Responder

Gostei + 0

19/05/2004

Paulo_amorim

Olá

Talvez exista um [i:b2ad55fdad]type[/i:b2ad55fdad] só para Exceções ocorridas de integridade. Tente verificar isso...
Por exemplo, ao vc fazer a conta 4/0 o Delphi gera uma exceção EDivByZero...
Existe também o EMathError, e assim por diante...

tente ver qual o tipo utilizado pelo Banco de Dados e se ele não cria uma Exceção diferente pra integridade.

De qualquer maneira, o erro de integridade deve ser diferente dos demais?

try
//  Insert, Update, Delete;
except
on E: Exception do
  ShowMessage(E.Message);
end;



Responder

Gostei + 0

20/05/2004

Tnaires

Não, Schneider, vc não precisa escrever o mesmo método para todos os DataSets. Vc só precisa escrevê-lo uma vez, com a mesma assinatura dos eventos OnPostError/OnDeleteError (q por sinal, são iguais) e associar no Object Inspector. Ou seja, basta pressionar umas poucas teclas, mais uns poucos cliques no mouse.
E as mensagens das exceptions (um dos parâmetros dos eventos) podem ser geradas pelo próprio Access, bastando vc digitá-las na seção ´Texto de validação´ de cada campo.
O ApplicationEvents não trata apenas dos erros d banco d dados, mas tb, d TODOS os possíveis erros da aplicação. Vc teria um pouco d trabalho pra selecionar as Exceptions q vc quisesse.
Enfim, a opção é sua...


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar