Daten aus Dateien laden und in Dateien speichern

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Verbindung einer ADO-Datenmenge zu einem Datenspeicher herstellen


Die über eine ADO-Datenmengenkomponente abgerufenen Daten können in einer Datei gespeichert werden, sodass zu einem späteren Zeitpunkt von demselben oder einem anderen Computer darauf zugegriffen werden kann. Zum Speichern stehen zwei proprietäre Formate zur Verfügung: ADTG und XML. ADO unterstützt nur diese beiden Dateiformate. Beachten Sie, dass nicht alle ADO-Versionen beide Formate unterstützen. Welche Dateiformate die von Ihnen verwendete Version unterstützt, können Sie der zugehörigen ADO-Dokumentation entnehmen.

Verwenden Sie die Methode SaveToFile, um Daten in einer Datei zu speichern. Für SaveToFile können zwei Parameter angegeben werden: der Name der Datei, in der die Daten gespeichert werden sollen, und optional das Format (ADTG oder XML). Geben Sie das Speicherformat für die Datei an, indem Sie den Parameter Format auf einen der Werte pfADTG oder pfXML setzen. Wenn eine Datei mit dem beim Parameter FileName angegebenen Namen bereits vorhanden ist, löst die Methode SaveToFile eine Exception vom Typ EOleException aus.

Verwenden Sie zum Abrufen der Daten aus der Datei die Methode LoadFromFile. Für LoadFromFile kann als einziger Parameter der Name der zu ladenden Datei angegeben werden. Wenn eine Datei mit dem angegebenen Namen nicht vorhanden ist, löst die Methode LoadFromFile eine Exception vom Typ EOleException aus. Beim Aufruf der Methode LoadFromFile wird die Datenmengenkomponente automatisch aktiviert.

Im folgenden Beispiel wird mit der ersten Prozedur die von der TADODataSet-Komponente abgerufene Datenmenge mit dem Namen ADODataSet1 in einer Datei gespeichert. Die Zieldatei ist eine ADTG-Datei mit dem Namen SaveFile, die auf einem lokalen Laufwerk gespeichert wird. Die zweite Prozedur lädt diese Datei in die TADODataSet-Komponente mit dem Namen ADODataSet2.



 procedure TForm1.SaveBtnClick(Sender: TObject);
 begin
   if (FileExists("c:\SaveFile")) then
   begin
     DeleteFile("c:\SaveFile");
     StatusBar1.Panels[0].Text := "Save file deleted!";
   end;
   ADODataSet1.SaveToFile("c:\SaveFile", pfADTG);
 end;
 procedure TForm1.LoadBtnClick(Sender: TObject);
 begin
   if (FileExists("c:\SaveFile")) then
     ADODataSet2.LoadFromFile("c:\SaveFile")
   else
     StatusBar1.Panels[0].Text := "Save file does not exist!";
 end;



 void __fastcall TForm1::SaveBtnClick(TObject *Sender)
 {
   if (FileExists("c:\\SaveFile"))
   {
     DeleteFile("c:\\SaveFile");
     Statusbar1->Panels->Items[0]->Text = "Save file deleted!";
   }
   ADODataSet1->SaveToFile("c:\\SaveFile");
 }
 void __fastcall TForm1::LoadBtnClick(TObject *Sender)
 {
   if (FileExists("c:\\SaveFile"))
     ADODataSet1->LoadFromFile("c:\\SaveFile");
   else
     Statusbar1->Panels->Items[0]->Text = "Save file does not exist!";
 }



Die zu speichernden oder zu ladenden Datenmengen müssen sich nicht unbedingt wie im obigen Beispiel in demselben Formular, in derselben Anwendung oder auf demselben Computer befinden. Dies erleichtert die Aktenkoffer-Übertragung von Daten von einem Computer zu einem anderen.

Siehe auch