I have a question about GetServerValuesOnConcurrencyException. Where is the data stored that is returned by this setting? I can see the select statement being fired (when I mudge the data to setoff the Concurrency Exception) , but I'm not seeing the 'new' values. Are they supposed to overwrite the current values in the BO, or are they stored somewhere else for comparison?
Thanks
On RaiseEvent, the retrieved values are compared to the local values and the RowCollision/FieldCollision objects are constructed and provided through the ConcurrencyException event of the business object.
On ThrowException, the retrieved DataRow is placed in a save error object which is placed within the SaveErrors collection of the exception object that is thrown. If you set the GetServerRow property to false, the row is not retrieved and the value in the save error is null.
So, that behavior is by design... the RaiseEvent option is designed to allow you to make a choice and re-save the record without having to call Save() again; it just does it inline.