unit DBFieldDataList; interface uses DB, Variants, FieldDataList, uses_end; procedure GetFieldDataListFromDataSet(FieldDataList: TFieldDataList; DataSet: TDataSet); implementation procedure GetFieldDataListFromDataSet(FieldDataList: TFieldDataList; DataSet: TDataSet); var I: Integer; RecordIndex: Integer; FieldName1: String; begin for I := 0 to DataSet.FieldCount - 1 do begin FieldDataList.AddField(DataSet.Fields[I].FieldName); end; RecordIndex := 0; while not DataSet.Eof do begin FieldDataList.AddDataRecord; for I := 0 to DataSet.FieldCount - 1 do begin FieldName1 := DataSet.Fields[I].FieldName; FieldDataList.Data[FieldName1, RecordIndex] := VarToStrDef(DataSet.FieldValues[FieldName1], ''); end; Inc(RecordIndex); DataSet.Next; end; end; end.