Autor Téma: TFDCommand - je "ukončený" ?  (Přečteno 982 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4574
  • Karma: 40
    • Verze Delphi: XE7 professional
TFDCommand - je "ukončený" ?
« kdy: 29-05-2016, 21:03:30 »
Potrebujem vedieť, či cmdDeposit_Upd.Transaction má "neukončené" úlohy. Myslím tým, že bol spustený (Execute), ale ešte to nebolo potvrdené, alebo zrušené (Commit, Rollback).
Vidím to dvoma spôsobmi a to pomocou:
  - premennej formulára
  - StartTransaction, Rollback, Commit.
 
Existuje nejaký iný spôsob zistiť aktuálny stav? DatasetCount po Execute je vždy nula. Samostatný Transaction.Active nie je správna cesta.
Ako mám správne postupovať?
Kód: Delphi [Vybrat]
  1.   // V DataModul
  2.   trnNoAutoCom := TFDTransaction.Create(Self);
  3.   trnNoAutoCom.Connection := conFBBasic;
  4.   trnNoAutoCom.Options.AutoCommit := False;
  5.   trnUpdate.Options.ReadOnly := False;
  6.   trnUpdate.Options.Isolation := xiReadCommitted;
  7.   trnNoAutoCom.Options.DisconnectAction := xdRollback;
  8.  
  9. function CreateNoAutoComCmd(AOwner: TComponent): TFDCommand;
  10. begin
  11.   Result := TFDCommand.Create(AOwner);
  12.   Result.Connection := dtmdBasic.conFBBasic;
  13.   Result.Transaction := dtmdBasic.trnNoAutoCom;
  14. end;
  15.  
  16.   cmdDeposit_Upd := CreateNoAutoComCmd(Self);
  17.   ...
  18.   while Assigned(Node) do
  19.   begin
  20.     if Node.CheckState = csCheckedNormal then
  21.     begin
  22.       ...
  23.       cmdDeposit_Upd.Execute();
  24.     end;
  25.  
  26.     Node := vstDeposit.GetNext(Node);
  27.   end;
  28.  
« Poslední změna: 29-05-2016, 21:05:09 od Stanislav Hruška »
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4574
  • Karma: 40
    • Verze Delphi: XE7 professional
Re:TFDCommand - je "ukončený" ?
« Odpověď #1 kdy: 30-05-2016, 13:24:12 »
Takže som si vybral cestu
Kód: [Vybrat]
  trnNoAutoCom.Options.AutoStart := False;  - StartTransaction, Rollback, Commit.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.