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

Материал из DRKB

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

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

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;


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

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


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