databasec++builderdatasnaptclientdataset

In A TPacketDataSet->Data usModified record, How can I determine which fields carry NULL value because they were deliberately changed to NULL?


I copy the TClientDataSet->Delta to TPacketDataSet->Data. Then I am using TPacketDataSet->Data to write cached updates to Faircom Server ISAM database record. When using the Modified Record pair, The second copy of the record marked "usModified" holds every field, modified or not, with the unmodified fields carrying NULL as the NewValue. Question: How can I determine which fields carry NULL value because they were deliberately changed to NULL, and which fields are NULL because they weren't changed? Simply writing NewValue to the persistence layer would result in clearing all field values which were not changed.


Solution

  • use InitAltRecBuffers and see if NewValue is Unassigned (not changed) or Null (cleaned)