How to know which fields in a DeltaChange are to be changed in case of reduced delta

I use a delphi client which performs DA UpdateData (using reduced delta)

The serializeddata binary gets passed around to .NET code

I would like to know how you can determine which fields in the DeltaChange object should actually update

For now I don’t update if NewValues[x]==null & Required==False

Another approach would be to check if OldValues[x]==null too.

FYI: I extract the Delta information from the stream using the function below.

The Count field is always the total number of fields.

static public RemObjects.DataAbstract.Delta GetDeltaFromROBinary(RemObjects.SDK.Types.Binary deltadata, DataTable dataTable)
{
	var streamer = new RemObjects.DataAbstract.Bin2DataStreamer(deltadata, RemObjects.DataAbstract.StreamerInitialization.ReadFromBeginning);
	RemObjects.DataAbstract.Delta delta = new RemObjects.DataAbstract.Delta(dataTable);
	streamer.ReadDelta(delta);
	streamer.FinalizeStreamer();
	return delta;
}

Hi,

we check old and new values and if they are equal, we exclude this field from update SQL.

check the code in CommandSqlGenerator.GenerateUpdateStatement (.NET) or TDABusinessProcessor.GenerateSQL2 (Delphi).