Предположим, что пользователь изменил строковое поле в Null. Как тогда я в обработчике OnUpdateData смогу определить, изменилось ли это поле на строку Null, или поле просто не было изменено?
Nomadic отвечает: Используйте свойство NewValue класса TField при чтении второй записи (той, которая содержит изменения). Если возвращаемое значение (variant) пусто или не назначено, тогда поле не было модифицировано. Здесь немного иллюстрирующего кода:
var
NewVal: Variant; begin
NewVal := DataSet.FieldByName('MyStrField').NewValue; if VarIsEmpty(NewVal) then ShowMessage('Field was not edited') else if VarIsNull(NewVal) then ShowMessage('Field was blanked out') else ShowMessage('New Field Value: ' + String(NewVal));end;