Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Как добавить копию текущей записи?

01.01.2007

Следующая функция добавит в конец данных точную копию текущей записи.

procedure AppendCurrent(Dataset:Tdataset); 
var
  aField
: Variant ;
  i      
: Integer ;
begin
 
// Создаём массив
  aField
:= VarArrayCreate([0,DataSet.Fieldcount-1],VarVariant);
 
 
// считываем значения в массив
 
for i := 0 to (DataSet.Fieldcount-1) do
     aField
[i] := DataSet.fields[i].Value ;
 
 
DataSet.Append ;
 
 
// помещаем значения массива в новую запись
 
for i := 0 to (DataSet.Fieldcount-1) do
     
DataSet.fields[i].Value := aField[i] ;
end;

Взято из https://forum.sources.ru

Примечания Vit:

1) Если таблица имеет ключевые поля или уникальные индексы данный код приведёт к ошибке "Key violation"