Let's add some code for saving the database to a file.
- In the source editor, under Private declarations, add the following lines:
private
{ Private declarations}
XmlFile: string;
DataChanged: Boolean;
- In the implementation section, modify procedure TForm1.FormCreate as follows:
procedure TForm1.FormCreate(Sender: TObject);
begin
DataChanged := False;
XmlFile := 'ufodata.xml';
if FileExists(XmlFile) then
cdsUfo.LoadFromFile(XmlFile)
else begin
cdsUfo.FieldDefs.Add('ID', ftString, 10, False);
cdsUfo.FieldDefs.Add('DESC', ftString, 25, False);
cdsUfo.FieldDefs.Add('LOCATION', ftString, 16, False);
cdsUfo.FieldDefs.Add('COUNTRY', ftString, 16, False);
cdsUfo.FieldDefs.Add('CE', ftString, 1, False);
cdsUfo.FieldDefs.Add('SOURCE', ftString, 25, False);
cdsUfo.FieldDefs.Add('DURAT', ftString, 16, False);
cdsUfo.FieldDefs.Add('WIT', ftString, 5, False);
cdsUfo.FieldDefs.Add('SHAPE', ftString, 10, False);
cdsUfo.FieldDefs.Add('APPEAR', ftString, 10, False);
cdsUfo.FieldDefs.Add('SIZE', ftString, 10, False);
cdsUfo.FieldDefs.Add('OCC', ftString, 3, False);
cdsUfo.FieldDefs.Add('LINK2', ftString, 50, False);
cdsUfo.FieldDefs.Add('NOTES', ftMemo, 10, False);
cdsUfo.CreateDataSet;
DataChanged := True;
end;
cdsUfo.LogChanges := False;
end;
- Select cdsUfo. In the Object Inspector, tab Events, double click next to AfterDelete.
In the Code Editor, complete the newly created event handler as follows:
procedure TForm1.cdsUfoAfterDelete(DataSet: TDataSet);
begin
DataChanged := True;
end;
- In the Object Inspector, create an OnClose event handler for Form1.
In the Code Editor, complete the event handler as follows:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if DataChanged then
cdsUfo.SaveToFile(XmlFile, dfXML);
end;
- Run your program (press F9). Add, modify and delete a few records.
- Stop the program.
The next time that you run the program, it loads the data from the XML file. Try it :)
Database Tutorials - Part 2
Database Tutorials - Part 4
|
|