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;

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

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

Previous page:
Как пересчитать все вычисляемые поля (Calculated Fields) без переоткрытия TDataSet?
Top:
DRKB
Next page:
Поиск значения при вводе