ファイルからのデータ読み込みとファイルへのデータ保存
ADO データセット コンポーネントから取得したデータは、ファイルに保存して、後で同じコンピュータまたは別のコンピュータで取り出すことができます。データは、ADTG または XML という 2 つの独自形式のいずれかで保存されます。ADO でサポートされているのは、この 2 つのファイル形式だけです。ただし、両方の形式が ADO のすべてのバージョンでサポートされているとは限りません。ご使用のバージョンの ADO ドキュメントで、どのファイル形式での保存がサポートされているかを確認してください。
データをファイルに保存するには SaveToFile メソッドを使用します。SaveToFile は 2 つのパラメータを受け取ります。データを保存するファイルの名前と、任意指定のデータの保存形式(ADTG または XML)です。保存ファイルの形式は、Format パラメータを pfADTG または pfXML に設定して指定します。FileName パラメータで指定したファイルが既に存在する場合は、SaveToFile で EOleException が発生します。
ファイルからデータを取り出すには、LoadFromFile メソッドを使用します。LoadFromFile は 1 つのパラメータを受け取ります。読み込むファイルの名前です。指定されたファイルが存在しない場合には、LoadFromFile で EOleException 例外が発生します。LoadFromFile メソッドを呼び出すと、データセット コンポーネントは自動的にアクティブになります。
次の例の最初の手続きでは、ADODataSet1 という TADODataSet コンポーネントから取得したデータセットをファイルに保存します。保存先ファイルは、SaveFile という名前の ADTG ファイルで、ローカル ドライブに保存されます。2 番目の手続きでは、保存したこのファイルを ADODataSet2 という TADODataSet コンポーネントに読み込みます。
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!"; }
データを保存するデータセットと読み込むデータセットは、上記の例のように同じフォーム上にある必要はありません。同じアプリケーション内や、同じコンピュータ上にある必要もありません。そのため、ブリーフケースのように、あるコンピュータから別のコンピュータにデータを転送することが可能です。