Hallo zusammen,
ich möchte Daten aus einer
XML Datei laden und zurück in eine Datenbank schreiben.
Die
XML Datei habe ich zuvor mit TADODataSet.SaveToFile erzeugt.
So sieht mein zurzeit Code aus:
Delphi-Quellcode:
DataSetSource.LoadFromFile(FileName);
CreateTable(DataSetSource); // eigene Methode erstellt leere Tabelle je nach Zieldatenbank
DataSetDest.CommandText := 'SELECT * FROM FileName WHERE 1=0';
DataSetDest.Open;
while NOT DataSetSource.Eof do
begin
DataSetDest.Insert;
for n := 0 to DataSetSource.Fields.Count - 1 do
if NOT DataSetSource.Fields[n].IsNull then
DataSetDest.Fields[n].Value := DataSetSource.Fields[n].Value;
DataSetDest.Post;
DataSetSource.Next;
end;
end;
Das ist allerdings
sehr langsam.
Ich habe schon probiert das "DataSetDest.Post" erst nach dem gesamten Durchlauf auszuführen, aber das hat auch keinen merklichen Unterschied gemacht.
Hat jemand einen Idee, wie man das Ganze etwas schneller hinbekommt?
Es müsste doch eine Möglichkeit geben über das Recordset Daten zu kopieren, oder nicht?
Alle Versuche in diese Richtung sind allerdings kläglich gescheitert.
Grüße
Peter