You would need to write your own TOracleDataSet.OnApplyRecord event to handle the various actions (lock, update, etc.). If TDataSetProvider.ResolveToDataSet is True, you don't necessarily need to handle anything, since all actions are defined by the provider.