В книге С.В.Глушакова "DELPHI 2007" (стр. 474) это решение описано так:
...Чтобы не изменять значение какого-либо поля, ему необходимо присвоить значение NIL.
В этом случае прежнее значение поля будет сохранено без изменения.
Редактирование записи с помощью метода SetFields может выглядеть примернотак:
ADOTable1.Edit;
ADOTable1SetFields(['0284','Порошок стиральный',NIL,500]);
ADOTable1.Post;
При выполнении приведенного выше кода первому полю текущей записи присваивается значение '0284' ,
второму полю - 'Порошок стиральный',
третье поле НЕ ИЗМЕНЯЕТСЯ , а четвертое получает значение 500.
...