Autor Beitrag
Eritacus
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Do 04.11.10 16:17 
Hallo zusammen,
bevor ich das hier geschrieben habe, habe ich überall gesucht und gegoogelt....ohne Erfolg. Viele haben die gleichen Probleme,
aber nirgendwo ist die Ursache oder eine Lösung beschrieben, daher ein neuer Versuch:

Ich benutze ADODataset1.SaveToFile(Dateiname) ---> klappt wunderbar, korrekte xml entsteht

Ich benutze anschließend ADODataset1.LoadFromFile(Dateiname) ---> die Datei wird korrekt geladen und im Grid angezeigt.

ABER: ich kriege die geladenen Daten nicht in die Datenbank! (stinknormales Acces)

Weiß jemand Rat? Würde mir sehr helfen...

Gruß Eritacus
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Do 04.11.10 17:36 
da musst Du schon drüberlaufen und die Daten "von Hand" in die DB schreiben.
Eritacus Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Do 04.11.10 18:40 
Das dachte ich mir schon. Geht ja auch, ist aber eben umständlich.
Eigentlich komisch, eine scheinbar tolle Funktionalität und dann dieser Schwachpunkt.

Danke!
PistolenPeter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Di 10.05.11 11:23 
Hallo zusammen,

das gleiche Problem hatte ich auch.
Meine Lösung:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
  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