Fórum Problemas atualização no Banco usando componentes DBExpress #238517

18/06/2004

0

Estou utilizando componentes de DbExpress: SQLConnection, SQLQuery, DataSetProvider, ClientDataSet.
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

Vanilsonvjm

Responder

Posts

18/06/2004

Vinicius2k

Vanilson,

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+


Responder

Gostei + 0

18/06/2004

Paulomad

Se vc estiver utilizando Delphi 7 o DBExpress está realmente com esse e outros bugs, veja no link abaixo a listagem que a Borland publicou, esse e outros bugs serão corrigidos no update para o Delphi 7.1

http://community.borland.com/article/0,1410,32337,00.html

Falou!


Responder

Gostei + 0

21/06/2004

Vanilsonvjm

Agradeço aos colegas que me enviaram as dicas, elas vão me ajudar a formular novamente o meu código.

Obrigado!

Vanilsonvjm


Responder

Gostei + 0

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

Aceitar