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;