Mega Code Archive

 
Categories / Delphi / ADO Database
 

How to use the tupdatesqlprovider onupdaterecord method

Question: How do I use TUpdateSQLProvider.OnUpdateRecord? Answer: In the UpdateRecord event, if UpdateKind is ukModify then there are 2 records that designate the important values. The first record contains old values, the second contains new values. In the event, the cursor will start on the second record. The following example forces a field called Test to UpperCase. procedure TForm1.UpdateSQLProvider1UpdateRecord(DataSet: TClientDataSet; UpdateKind: TUpdateKind; UpdateQuery: TQuery; var Applied: Boolean); begin with DataSet do begin if (UpdateKind in [ukModify, ukInsert]) and (not VarIsEmpty(FieldByName('TEST').NewValue) then UpdateQuery.ParamByName('TEST').Value := UpperCase(FieldByName('TEST').NewValue); end; end; I use VarIsEmpty on the NewValue to see if the value has changed, then I set the correct param for the query to the value I actually want it to be.