GARANTIR DESCONTO

Fórum ClientDataSet x ReconcileError #348506

06/11/2007

0

ClientDataSet x ReconcileError


Ola pessoal.
Estava com problemas na finalizacao de um conjunto de operacoes em meu sistema, onde estavam dentro de uma transacao mas por causa do uso dos ClientDataSet´s nao estava controlando os erros no mesmo. Apos estudar o assunto aqui no forum, resolvi fazer da forma que consta no codigo logo abaixo, o que resolveu meu problema. Minha duvida é: é a forma correta de fazer esse controle quando ha erros nos clientdataset´s? Existem uma forma mais direta, sem usar uma variavel (ErroApplyUpdates)?

try
if not IBTransaction.InTransaction then IBTransaction.StartTransaction;

comandos SQL´s (inserts / updates / deletes)

...

Posts em ClientDataSets

...

ErroApplyUpdates := false;
ClientDataSet1.ApplyUpdates(0);
ClientDataSet2.ApplyUpdates(0);
ClientDataSet3.ApplyUpdates(0);

...

if ErroApplyUpdates then
raise Exception.Create(´´);

...

outros comandos
comandos SQL´s (inserts / updates / deletes)

...

if IBTransaction.InTransaction then IBTransaction.Commit;
Application.MessageBox(´Operação finalizada!´, ´Sucesso´, MB_OK + MB_ICONINFORMATION);
except
if IBTransaction.InTransaction then IBTransaction.Rollback;
Application.MessageBox(´Erro na operação!´, ´Erro´, MB_OK + MB_ICONERROR);
end;


procedure form1.cdsNFReconcileError(DataSet: TCustomClientDataSet;
E: EReconcileError; UpdateKind: TUpdateKind;
var Action: TReconcileAction);
begin
ErroApplyUpdates := true;
end;


Drf

Drf

Responder

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

Aceitar