In case anyone in interested, the problem is a bug in the TClientDataSet
component. The problem only occurs when you clone a dataset, don't have a Provider
and turn LogChanges
off. If you edit a record on the cloned dataset and then cancel the edit, then any memo fields lose their values.
Since you don't necessarily use a Provider
in file-based applications, it doesn't always make sense to enable LogChanges
. However, to work around the limitation with memo fields, you can leave LogChanges
on, and then call MergeChangeLog
after operations that change the cloned dataset.
I created a program that demonstrates the issue. See the Embarcadero incident QC#110511.