Fórum Programa trava após ApplyUpdates #267263
02/02/2005
0
var TD: TTransactionDesc; procedure Transaction; begin Random; TD.TransactionID := Random; TD.IsolationLevel := xilREADCOMMITTED; SQLConnection1.StartTransaction(TD); ClientDataSet.ApplyUpdates(0); end;
Grato pela atenção
Escobar
Curtir tópico
+ 0Posts
02/02/2005
Christian_adriano
Utilizo o CDS (ClientDataSet) a pouco tempo, mais pelo que eu sei ele (CDS) controlas as suas transações.
eu utilizo da seguinte maneira:
**********************************************************
Se existirem alterações não executadas na propriedade Delta então execute-as
with ClientDataSet do
begin
if ChangeCount > 0 then
begin
ApplyUpdates(-1);
Refresh;
end;
end;
**********************************************************
Cancela todas as alterações
ClientDataSet.CancelUpdates;
**********************************************************
Desfaz a ultima alteração e move-se p/ o registro alterado
ClientDataSet.UndoLastChange(True);
**********************************************************
Desfaz todas as alterações no registro corrente
ClientDataSet.RevertRecord;
**********************************************************
Alguma duvida estou a disposição.
[]´s.
Christian.
Gostei + 0
02/02/2005
Escobar
Grato pela atenção
Gostei + 0
02/02/2005
Biscalquini
var
TD: TTransactionDesc;
ID: Integer;
procedure Transaction;
begin
ID:=Random(65000);
TD.TransactionID := ID;
TD.IsolationLevel := xilREADCOMMITTED;
If not SQLConnection1.inTransaction Then
Begin
Try
ClientDataSet.ApplyUpdates(0);
SQLConnection1.StartTransaction(TD);
SQLConnection1.Commit;
Except
on E: Exception do
Begin
ShowMessage(´Erro ao aplicar as atualizações!´+#13+E.Message);
ClientDataSet1.CancelUpdates;
SQLConnection1.Roolback;
End;
End;
End;
end;
Deve funcionar....
Gostei + 0
02/02/2005
Escobar
var TD: TTransactionDesc; procedure Transaction; begin Random; TD.TransactionID := Random; TD.IsolationLevel := xilREADCOMMITTED; SQLConnection1.StartTransaction(TD); end; procedure TForm1.Alterar1(Sender: TObject); begin ClientDataSet1.ApplyUpdates(0); end; procedure TForm1.Alterar2(Sender: TObject); begin ClientDataSet2.ApplyUpdates(0); end; procedure TForm1.Alterar3(Sender: TObject); begin ClientDataSet3.ApplyUpdates(0); //nesse ponto chamo a função no servidor que da commit em minha transação end;
Gostaria de saber como evitar o travamento do outro programa que tenta fazer o mesmo.
Grato pela atenção[/code]
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)