Einzelnen Beitrag anzeigen

omega90

Registriert seit: 2. Jul 2014
8 Beiträge
 
#1

Wie erhalte Ich die Änderungen eines TClientDataset in ein TClientDataset um diesen i

  Alt 10. Sep 2014, 10:03
Hallo Zusammen...

Ich habe vor die Daten in einem TClientDataset über ein Grid zu ändern und über Delta die geänderten Daten in einem TClientDataset in einer Schleife zu durchlaufen und den passenden SQL Code zu bauen.

Hierfür greife ich auf eine DBF Datei zu die mir über eine Komponente ApolloDatabase und ApolloTable in mein TClientDataset übergibt. Das funktioniert.

Ich kann die Daten in einem Grid anzeigen lassen via DataSource und Provider. Über folgenden Code prüfe Ich zunächst ob die Daten geändert wurden im TClientDataset.

Quellcode
if Self.DatasetArtikel.ChangeCount = 0 then
begin
ShowMessage('Delta is empty');
Exit;
end;


Anschließend gebe Ich in einem Integer aus wieviele Änderungen es gab.

Quellcode
counter := DatasetArtikel.ChangeCount;


Nun möchte Ich die Änderungen (Nur die Änderungen) im Dataset erfassen.

Quellcode
DatasetArtikel.Data := Self.DatasetArtikel.Delta;


Danach wollte Ich in einer Schleife das Dataset durchlaufen, mir ist jedoch aufgefallen das Ich auch wenn Ich einen Wert geändert hatte nur den alten Wert erhalte.

Zum Beispiel habe Ich in der Spalte 3 im ersten Daensatz blueblue stehen und änder diesen in redred ab. Jedoch bekomme Ich nur blueblue zurück aber ich brauche den neuen Wert..

Quellcode
value := DatasetArtikel.Fields[2].OldValue; //gibt blueblue zurück
value := DatasetArtikel.Fields[2].Value; //gibt blueblue zurück
value := DatasetArtikel.Fields[2].NewValue; //gibt blueblue zurück


Wie kann ich das realisieren das Ich ein Dataset erhalte nur mit den Änderungen und dieses in einer Schleife durchlaufe und die neuen Werte rausfilter?
  Mit Zitat antworten Zitat