В TDataSetProvider есть событие BeforeUpdateRecord, которое в основном является более ручным способом выполнения TUpdateSQL
Вы должны создать SQL самостоятельно, а затем обновить его (через TADOQuery и т. Д.)
как бы то ни было он имеет те же самые основы старых и новых значений, что и в TUpdateSQL
извините, это c ++, я не знаю, дехпли, но в принципе то же самое, я думаю
DeltaDS->FieldByName("id")->NewValue;
и
DeltaDS->FieldByName("id")->OldValue;
также вы должны установить
Applied = true;
чтобы не пытаться выполнить обновление после того, как вы сделали это вручную
вот несколько ссылок, которые должны помочь
О программе BeforeUpdateRecord
если вам нужна дополнительная информация, просто добавьте комментарий и я вернусь к вам