procedure TForm1.ADQuery1UpdateRecord(ASender: TDataSet; ARequest: TADUpdateRequest; var AAction: TADErrorAction; AOptions: TADUpdateRowOptions); begin if ARequest = arInsert then begin // set the SQL command to insert new record ADQuery2.SQL := 'insert into mytab (id, code, name) values (:id, :code, :name) returning tmstamp into :ts'; // set parameter values ADQuery2.Params[0].Value := ASender['id']; ADQuery2.Params[1].Value := ASender['code']; ADQuery2.Params[2].Value := ASender['name']; // specially define TS parameter ADQuery2.Params[3].DataType := ftDateTime; ADQuery2.Params[3].ParamType := ptOutput; // insert new record ADQuery2.ExecSQL; // move TS output parameter value back to dataset ASender['tmstamp'] := ADQuery2.Params[3].Value; // return 'Ok' status AAction := eaApplied; end; end;