Here's the updated code (SaveOnClose = True)
See how simple is to use: no sql at all
procedure TForm1.FormCreate(Sender: TObject);
begin
with ContactsDataset do
begin
FileName := 'data.db';
if not TableExists then
begin
FieldDefs.Clear;
FieldDefs.Add('Id', ftAutoInc);
FieldDefs.Add('Name', ftString);
FieldDefs.Add('Email', ftString);
FieldDefs.Add('Input', ftInteger);
FieldDefs.Add('Output', ftInteger);
CreateTable;
end;
Open;
end;
end;
procedure TForm1.AddButtonClick(Sender: TObject);
begin
ContactsDataset.Append;
ContactsDataset.FieldByName('Name').AsString := 'New Contact';
ContactsDataset.FieldByName('Email').AsString := 'xxx@yyy.com';
ContactsDataset.FieldByName('Input').AsInteger := 250;
ContactsDataset.FieldByName('Output').AsInteger := 115;
ContactsDataset.Post;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ContactsDataset.Active:=False;
ContactsDataset.SQL:='Select Id, Name, Email, Input, Output,Input - Output as State From Contacts';
ContactsDataset.Active:=True;
end;
procedure TForm1.DeleteButtonClick(Sender: TObject);
begin
if ContactsDataset.RecordCount > 0 then
ContactsDataset.Delete;
end;