Nehmen wir an Du hast eine Tabelle mit den Spalten
ID (Integer), Status (String), Created (TDateTime) und Volume (Real)
Das musst Du erst mal dem ClientDataSet sagen:
Delphi-Quellcode:
var
ClientDataSet: TClientDataSet;
begin
ClientDataSet:= TClientDataSet.Create(NIL);
// Felder definieren
ClientDataSet.FieldDefs.Add('ID', ftInteger, 0, FALSE);
ClientDataSet.FieldDefs.Add('Status', ftString, 15, FALSE);
ClientDataSet.FieldDefs.Add('Created', ftDate, 0, FALSE);
ClientDataSet.FieldDefs.Add('Volume', ftFloat, 0, FALSE);
// Dataset aktvieren
ClientDataSet.CreateDataset;
ClientDataSet.Open;
Nun ist das ClientDataSet quasi bereit (strukturiert) Daten aufzunehmen:
Delphi-Quellcode:
ClientDataSet.Append;
ClientDataSet.FieldByName('ID').AsInteger := 1;
ClientDataSet.FieldByName('Status').AsString := 'Mein Status';
ClientDataSet.FieldByName('Created').AsDateTime := Date(); // Heute
ClientDataSet.FieldByName('Volume').AsFloat := 9.345;
ClientDataSet.Post;
Hast Du alle Daten eingepflegt kannst Du alles speichern:
Delphi-Quellcode:
ClientDataSet.SaveToFile('D:\TestXmlDataSet.xml', dfXMLUTF8);
// oder ClientDataSet.SaveToFile('D:\TestXmlDataSet.xml');
Wenn Du Dir die erzeugte Datei anschaust wirst Du feststellen, dass es sich dabei um eine
XML-Datei handelt.
Lesen geht dann auch ganz einfach:
Delphi-Quellcode:
var
myInt: Integer;
myDate: TDateTime;
myString: string;
myFloat: Currency;
ClientDataSet.LoadFromFile('D:\TestXmlDataSet.xml');
ClientDataSet.First;
while not ClientDataSet.EOF do
begin
myInt:= ClientDataSet.FieldByName('Id').AsInteger;
myDate:= ClientDataSet.FieldByName('Status').AsString;
myString:= ClientDataSet.FieldByName('Created').AsDateTime;
myFloat:= ClientDataSet.FieldByName('Volume').AsFloat;
ClientDataSet.Next;
end;