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

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

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;

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

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

Отправить комментарий

Проверка
Антиспам проверка
Image CAPTCHA
...