Announcement

Collapse
No announcement yet.

ClientDataSet und Datensatz entgültig löschen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ClientDataSet und Datensatz entgültig löschen

    Hallo Gemeinde,

    ich verwende ein ClientDataSet und eine angelegte Tabelle.
    Mit CDS1.LoadFromFile('d:\test.xml') lade ich die Tabelle und fülle sie zur Laufzeit mit Daten.
    Zum testen habe ich mit
    <PRE>
    for i:=1 to CDS1.RecordCount do begin
    CDS1.Edit;
    CDS1.FieldDefs.DataSet.Delete;
    CDS1.Next;
    end;
    CDS1.SaveToFile('d:\testneu.xml',dfXML);
    </PRE>
    die Inhalte wieder löschen und die Tabelle als "testneu.xml" abspeichern wollen.
    Wenn ich mir aber die neue Datei ansehe, sind trotzdem noch alle Datensätze enthalten.
    Was mache ich falsch?
    Danke im Voraus!

    Grüsse Peter

  • #2
    Hallo,

    die Änderungen an den Datensätzen egal ob Delete oder Edit liegen beim Clientdataset im Speicher als Änderungsprotokoll vor und werden nicht automatisch mit weggeschrieben (wenn nicht LogChanges auf false gesetzt ist).
    Ein Aufruf von Cds1.MergeChangeLog vor dem Speichern reicht auch. Daneben würde ich auch nicht via CDS1.FieldDefs.Dataset.Delete löschen, sondern direkt via CDS1.Delete (For-Schleife dann natürlich von RecordCount downto 0 oder alernativ while not cds1.Eof do).
    Wenn alle Sätze gelöscht werden sollen, lässt sich das auch durch die Methode EmptyDataSet mit einem Aufruf erledigen

    HTH, Bern

    Comment


    • #3
      Hallo Bernd,

      vielen Dank!
      "EmptyDataSet" habe ich beim Durchsuchen nach möglichen Methoden völlig übersehen. Das war es eigentlich, was ich gesucht habe.
      Nochmals danke.

      Grüsse Pete

      Comment

      Working...
      X