procedure CopyRecord(Source, Destination: TDataSet);
var Ind:longint;
SField, DField: TField;
begin
for Ind:=0 to Source.FieldCount - 1 do
begin
SField := Source.Fields[ Ind ];
DField := Destination.FindField( SField.FieldName );
if (DField <> nil) and (DField.FieldKind = fkData) and
not DField.ReadOnly then
if (SField.DataType = ftString) or
(SField.DataType <> DField.DataType) then
DField.AsString := SField.AsString
else
DField.Assign( SField )
end;
end;
procedure TFormDemo.ButtonAppendClick(Sender: TObject);
var
StartRecNo: Integer;
begin
DataSet_D.Open;
DataSet_S.Open;
while not DataSet_S.Eof do
begin
if DataSet_S.FieldValues['Status'] > 0 then
StartRecNo := DataSet_S.RecNo;
if DataSet_S.RecNo > StartRecNo then
begin
DataSet_D.Append;
CopyRecord(DataSet_S, DataSet_D);
DataSet_D.Post;
end;
DataSet_S.Next;
end;
end;