Fórum Como Tratar erro enviado pelo Firebird no delphi #357304
17/04/2008
0
Caso alguem possa ajudar é algo muito util para muitos... VLw
Digaopachesen
Curtir tópico
+ 0Posts
18/04/2008
Fabiano Góes
coloque este componente no form principal do projeto, e no evento:
OnException faça o tratamento de erros.
alguma coisa desse tipo:
procedure TForm1.ApplicationEvents1Exception(Sender: TObject; E: Exception); begin if Pos(UpperCase(´key violation´), UpperCase(e.Message)) > 0 then ShowMessage(´Violação de chave primaria ou chave unica´); end;
Gostei + 0
18/04/2008
Digaopachesen
Gostei + 0
19/04/2008
Marco Salles
que voce utiliza ... Por exemplo o clientDataSet não propaga o erro . então se vc estiver usando o cds a dica do fabiano.goes talvez não funcione
Gostei + 0
19/04/2008
Fabiano Góes
que voce utiliza ... Por exemplo o clientDataSet não propaga o erro . então se vc estiver usando o cds a dica do fabiano.goes talvez não funcione[/quote:61ee6c7ccb]
Marcos,
aproveitando a deixa,
qual a maneira correta de se tratar erro quando se usa clientdataset?
Gostei + 0
19/04/2008
Marco Salles
o delphi tem ate o formulario ReconcileErrorForm ja pronto para ser adicionado ao projeto
File -->> new -->> other -->> Dialogs
no evento oneconcilerror do clienteDataSet voce cria ou chama este formulário
Action := HandleReconcileError(DataSet, UpdateKind, e);
acho que é uma boa opção
Gostei + 0
19/04/2008
Digaopachesen
Gostei + 0
19/04/2008
Digaopachesen
Código:
procedure TForm1.ApplicationEvents1Exception(Sender: TObject;
E: Exception);
begin
if Pos(UpperCase(´key violation´), UpperCase(e.Message)) > 0 then
ShowMessage(´Violação de chave primaria ou chave unica´);
end;
eu adicionei um showmessage com qualquer coisa para ver se estava funcionando e realmente estava mas assim o registro fica como se estivesse salvo eu tentei da refresh no componente, tentei cancelar, mas nao deu certo, e ele fica como se estive salvo, ai se eu fechar e abrir novamente este registro q deu erro nao vai estar mais la, como q posso fazer para q ele ou fique como se eu estive editando o registro ainda????
vlw pela ajuda
Gostei + 0
19/04/2008
Marco Salles
procedure TForm1.ApplicationEvents1Exception(Sender: TObject; E: Exception); begin if Pos(UpperCase(´key violation´), UpperCase(e.Message)) > 0 then begin raise exception.Create(´Violação de Chave Primaria´); abort; end;
acho que esta exceção seguido do abort , evita a inclusão.... estou sem o delphi para testar ... mas tente isso
boa sorte
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)