Ich habe ein Clientdataset, dessen Fielddefs zur Laufzeit geladen und Werte hinzugefügt werden. Es gibt keine Indizierung und keinen Provider und der Datensatz wird direkt in einer XML-Datei gespeichert. Wenn ich die Werte (nur Wortarten) ändere, dann werden neue Datensätze erstellt, aber die alten Zeilendaten werden beibehalten und in der XML-Datei gespeichert, sind jedoch NOT mit den Datensätzen verknüpft. Außerdem werden die redundanten, inaktiven Zeilen immer wieder mit aufeinanderfolgenden Lese- und Speicherparametern gespeichert. Dies ist der CodeWie kann ich vermeiden, dass der Datensatz alte bearbeitete, aber nicht zugängliche Daten beibehält?
`CFCDS.First;
While not CFCDS.eof do
begin
GetCFGComps();
CFCDS.next;
end;`
Procedure GetCFGComps();
var j: integer;
Begin
for j := 0 to 14 do
begin {READ values to record}
case j of
0: FldPos.L := CFCDS.Fields[j].Value;
1: FldPos.T := CFCDS.Fields[j].Value;
...........
end;
end;
with FldPos do begin
L := 550;
T := 69;
W := 333;
end;
for J := 0 to 14 do
begin
case j of
0: CFCDS.Fields[j].Value:=FldPos.L;
1: CFCDS.Fields[j].Value:=FldPos.T;
....................
end;
end;
CFCDS.SaveToFile(CFGFileName, dfXML);
j:= CFCDS.RecordCount; //always 50 - the correct number
CFCDS.First;
FldPos.L := CFCDS.Fields[1].Value; //returns new values
CFCDS.SaveToFile(DIRY+'CFTEXT.cft',dfBinary); //also has old supernumery rows
end; `
ich ungeschickter Möglichkeiten, um dieses wie eine temporäre Datensatz erstellen, löschen die Arbeitsdatensatzes denken kann und dann das Speichern der Aufzeichnungsdaten für Werte verwendet, die nicht verändert werden. Ich schätze, dass CDS neue Datensätze erstellen kann, wenn es unangenehm ist, aber dies ist eine sehr einfache Änderung der Werte.
Wenn ich den Code entfernen: mit FldPos beginnen L: = 550; T: = 69; W: = 333; Ende; Die XML-Datei ist nur mit den Datensatzdaten (alle Zeilen Rowstate "4") sauber.
Hat jemand einen Vorschlag, wie der Datensatz programmgesteuert bearbeitet werden kann so alte unzugängliche Daten nicht beibehalten wird und es nur Zeilendaten von Datensätzen enthält? Danke