Copy the current record of a dataset (Views: 27)
Problem/Question/Abstract: Copy the current record of a dataset Answer: I found this routine which copies the current record of the currently selected record. This is useful e.g. to keep a temporary record for display in a form. {************************************************ // procedure AppendCurrent // // Will append an exact copy of the current // record of the dataset that is passed into // the procedure and will return the dataset // in edit state with the record pointer on // the currently appended record. ************************************************} procedure AppendCurrent(Dataset: Tdataset); var aField: Variant; i: Integer; begin // Create a variant Array aField := VarArrayCreate( [0, DataSet.Fieldcount - 1], VarVariant); // read values into the array for i := 0 to (DataSet.Fieldcount - 1) do begin aField[i] := DataSet.fields[i].Value; end; DataSet.Append; // Put array values into new the record for i := 0 to (DataSet.Fieldcount - 1) do begin DataSet.fields[i].Value := aField[i]; end; end; |