Fórum Problemas atualização no Banco usando componentes DBExpress #238517
18/06/2004
0
Esta atualizando localmente, quando verfico no banco de dados as atualizações não feitas. Por favor quem puderm me ajudar agradeço.
procedure TDataModule3.GravaBanco;
var
TD: TTransactionDesc;
begin
if not SQLConnection1.InTransaction then
begin
// TD.TransactionID := 1;
TD.GlobalID := 0;
TD.IsolationLevel := xilREADCOMMITTED;
SQLConnection1.StartTransaction(TD);
end;
try
ClientDataSet1.Post;
ClientDataSet2.ApplyUpdates(-1);
ClientDataSet1.ApplyUpdates(-1);
SQLConnection1.Commit(TD);
ShowMessage(´Gravado com sucesso´);
except
SQLConnection1.Rollback(TD);
raise;
end;
end;
Vanilsonvjm
Curtir tópico
+ 0Posts
18/06/2004
Vinicius2k
Creio que esteja existindo algum [b:b46363596f]erro[/b:b46363596f] no ApplyUpdates dos CDSs... o problema no seu código é que o método ApplyUpdates não gera exceção em caso de erros, este método retorna o número de erros que ocorreram, então Try... Except não surtem efeito...
O que eu uso, por exemplo é verificar se o número de erros foi maior q 0 então aborto, e dou rollback na transação...
if CDS.ApplyUpdates > 0 then // houve erro else // não houve erro...
Se vc precisar da mensagem de erro do banco, utilize o evento OnReconcileError do CDS... por exemplo:
Showmessage(E.Message);
Não posso afirmar que este seja o problema, mas ao menos vc terá certeza se houve um erro ou não...
Espero ter ajudado...
T+
Gostei + 0
18/06/2004
Paulomad
http://community.borland.com/article/0,1410,32337,00.html
Falou!
Gostei + 0
21/06/2004
Vanilsonvjm
Obrigado!
Vanilsonvjm
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)