заводим темповую переменную такого же типа, что и переменная в которой хотим поменять ключевое поле например
Temp
Далее пишем примерно такой код
Temp.DELETEALL;
MyRec.FIND('-'); //реальная запись
Temp := MyRec;
Temp.PrimaryKeyField := 'NewValue';
Temp.INSERT;
MyRec.DELETE;
MyRec := Temp;
MyRec.INSERT;
этот пример можно модифицировать и для перебора значений по фильтру(с последующей сменой значения в ключ поле)
минус в том что в Temp мы можем вставить запись которая уже есть в MyRec
|