Lecture et enregistrement des données dans des fichiers

De RAD Studio
Aller à : navigation, rechercher

Remonter à Connexion d'un ensemble de données ADO à un stockage de données


Les données obtenues dans un composant ensemble de données ADO peuvent être enregistrées dans un fichier pour une utilisation ultérieure dans le même ordinateur ou dans un autre. Les données sont enregistrées en utilisant un des deux formats propriétaire proposés : ADTG ou XML. Ces deux formats de fichiers sont les seuls formats gérés par ADO. Toutefois, ils ne sont pas nécessairement gérés par toutes les versions de ADO. Consultez la documentation ADO pour connaître quels formats de fichiers gèrent la version en cours.

Enregistrez les données dans un fichier en utilisant la méthode SaveToFile. SaveToFile accepte deux paramètres, le nom du fichier dans lequel les données sont enregistrées, et, éventuellement, le format (ADTG ou XML) de sauvegarde des données. Indiquez le format du fichier enregistré en attribuant au paramètre Format la valeur pfADTG ou pfXML. Si le fichier spécifié par le paramètre FileName existe déjà, SaveToFile déclenche une exception EOleException.

Récupérez les données enregistrées en utilisant la méthode LoadFromFile. LoadFromFile accepte un paramètre : le nom du fichier à charger. Si le fichier spécifié n'existe pas, LoadFromFile déclenche une exception EOleException. Lors de l'appel de la méthode LoadFromFile, le composant ensemble de données est automatiquement activé.

Dans l'exemple suivant, la première procédure enregistre dans un fichier l'ensemble de données obtenu par le composant TADODataSet ADODataSet1. Le fichier destination est un fichier ADTG nommé SaveFile qui est créé sur un disque local. La seconde procédure charge ce fichier dans le composant TADODataSet 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!";
}

Il n'est pas nécessaire que les ensembles de données qui effectuent la sauvegarde et la lecture des données figurent sur la même fiche comme dans l'exemple précédent, ni dans la même application ou sur la même machine. Cela permet des transferts de données de style porte-documents d'un ordinateur à un autre.

Voir aussi