Как добавить копию текущей записи?
Falk0ner, вс, 06/07/2008 - 15:34.
Следующая функция добавит в конец данных точную копию текущей записи.
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;
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"
Отправить комментарий