Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   TClientDataSet - LogChanges (https://www.delphipraxis.net/212393-tclientdataset-logchanges.html)

lxo 3. Feb 2023 11:35

TClientDataSet - LogChanges
 
Hallo,

weiß jemand wie ich dieses Verhalten abstellen kann?
Ich werde aus den DataSet-Klassen nicht schlau und verstehe nicht an welcher Stelle das LogChanges beim Open wieder auf True gesetzt wird.

Ich hätte einfach gerne, dass LogChanges immer False bleibt. Selbst wenn ich das DataSet schließe und wieder öffne.
Meine Lösung ist aktuell im .AfterOpen das LogChanges wieder auf False zu setzen.

Delphi-Quellcode:

  var lClientDataSet := TClientDataSet.Create( nil);
  try
    lClientDataSet.FieldDefs.Add( 'ID', ftInteger);
    lClientDataSet.CreateDataSet;

    lClientDataSet.LogChanges := False;

    lClientDataSet.Close;
    lClientDataSet.Open; // <-- Danach ist LogChanges wieder auf True.

  finally
    FreeAndNil( lClientDataSet);
  end;

Uwe Raabe 3. Feb 2023 11:43

AW: TClientDataSet - LogChanges
 
AFAIK ist LogChanges per Default True nach dem Open (das CreateDataSet macht implizit auch ein Open).

Wenn es nicht nur eine kurzfristige Instanz wie in dem Beispiel ist, kannst du einen AfterOpen-Event verdrahten und da das LogChanges auf False setzen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz