Using Dataset Components to Update a Dataset
From InterBase
Go Up to Using Update Objects to Update a Dataset
Applying cached updates usually involves use of one or more update objects. The update SQL statements for these objects apply the data changes to the base table. Using update components is the easiest way to update a dataset, but it is not a requirement. You can alternately use dataset components like TIBTable and TIBQuery to apply the cached updates.
In a handler for the dataset component’s OnUpdateRecord event, use the properties and methods of another dataset component to apply the cached updates for each record.
For example, the following code uses a table component to perform updates:
procedure TForm1.EmpAuditUpdateRecord(DataSet: TDataSet;
UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
begin
if UpdateKind = ukInsert then
UpdateTable.AppendRecord([DataSet.Fields[0].NewValue, DataSet.Fields[1].NewValue])
else
if UpdateTable.Locate('KeyField', VarToStr(DataSet.Fields[1].OldValue), []) then
case UpdateKind of
ukModify:
begin
Edit;
UpdateTable.Fields[1].AsString := VarToStr(DataSet.Fields[1].NewValue);
Post;
end;
ukInsert:
begin
Insert;
UpdateTable.Fields[1].AsString := VarToStr(DataSet.Fields[1].NewValue);
Post;
end;
ukModify: DeleteRecord;
end;
UpdateAction := uaApplied;
end;