Fórum try except #170118
18/07/2003
0
estou tentando usar exceções para tratar erros no banco de dados Mysql.
Usando o código abaixo, quando ocorre um erro em ApplyUpdates,
aparece uma mensagem de erro do banco (por exemplo, key violation. [MySQL ....).
try
dm.QueryPeriodico.Post;
dm.dbBanco.ApplyUpdates([dm.QueryPeriodico]);
except
on EDBEngineError do
ShowMessage(´Alteração não permitida.´);
end;
Quando ocorre erro no ApplyUpdates, o fluxo do programa não deveria ser desviado para except?
Aqui não está ocorrendo isso. Só mostra a mesagem do Banco de dados nunca mostra o meu ShowMessage (´Alteração não permitida´).
Como vcs tratam as mesagens de erro do Banco?
Obrigado por qualquer ajuda
[ ]´s
Paulo
Paulososi
Curtir tópico
+ 0Posts
18/07/2003
Cebikyn
Gostei + 0
18/07/2003
Allan
Tipo :
if E.ErrorCode = 9729 then
begin
ShowMessage(´Erro de Key Violation´) ;
Abort;
end ;
Pra vc usar essa sua estrutura no se datamodulo vc deve ter um DataBase , e abrir uma seção :
dm.Database1.StartTransaction;
try
dm.QueryPeriodico.Post;
dm.dbBanco.ApplyUpdates([dm.QueryPeriodico]);
dm.Database1.Commit;
except
on EDBEngineError do
dm.Database1.Rollback;
ShowMessage(´Alteração não permitida.´);
end;
Deve funcionar ...
Allan
Gostei + 0
18/07/2003
Cebikyn
Gostei + 0
18/07/2003
Cebikyn
´Erro de Key Violation´ não diz muito para um usuário comum...
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)