GARANTIR DESCONTO

Fórum Transações distintas #356356

01/04/2008

0

Pessoal, boa tarde!

Gostaria de saber se alguém pode me ajudar na dúvida abaixo:

Tenho 2 servidores (aplicação multicamadas), onde em cada um, tenho um SQLConnection (DBExpress) e os SQLDataSets e seus parceiros. Em um método na aplicação cliente, estou fazendo applyUpdates para gravar alguns dados, executados dentro de uma transação...

...
try
  Server1.AppServer.StartTrans;
  ...
  ClientDataSet1.ApplyUpdates(0);
  ...
  ClientDataSet2.ApplyUpdates(0);
  ...
  Server1.AppServer.Commit;
except
  Server1.AppServer.Rollback;
end;


Até ai estava funcionando, mas preciso executar um método desenvolvido no Server2 que altera alguns dados e me retorna uma string. Então o codigo acima ficou assim:

...
try
  Server1.AppServer.StartTrans;
  ...
  ClientDataSet2.ApplyUpdates(0);
  ...
  Server2.AppServer.StartTrans;
  ...
  ClientDataSet1CAMPO.AsString := Server2.AppServer.ExecutaMetodo;
  ...
  ClientDataSet1.ApplyUpdates(0);
  ...
  Server2.AppServer.Commit;
  Server1.AppServer.Commit;
except
  Server2.AppServer.Rollback;
  Server1.AppServer.Rollback;
end;


O que está acontecendo é o seguinte: O código é executado até chegar no ApplyUpdates do clientDataSet1. Qdo vai executar, trava nessa linha.

Nao posso fazer dessa forma: Abrir uma transação utilizando uma conexão e abrir outra utilizando outra conexão, conforme acima?


Tchelllo

Tchelllo

Responder

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

Aceitar