procedure createDBF(dataSet:TDataSet; fileName:String);
var
i:integer;
temporaryTable:TTable;
activity:boolean;
begin
activity:=dataSet.Active;
dataSet.Active:=true;
dataSet.First;
temporaryTable:=TTable.Create(nil);
try
temporaryTable.FieldDefs:=dataSet.FieldDefs;
temporaryTable.TableName:=fileName;
temporaryTable.CreateTable;
temporaryTable.Active:=true;
while not dataSet.Eof do begin
temporaryTable.Append;
for i:=0 to dataSet.Fields.Count-1 do
if not dataSet.Fields[i].Calculated then
temporaryTable.FieldByName(dataSet.Fields[i].FieldName).Value:=dataSet.FieldByName(dataSet.Fields[i].FieldName).Value;
temporaryTable.Post;
dataSet.Next;
end;
temporaryTable.Active:=false;
finally
temporaryTable.Free;
end;
dataSet.Active:=activity;
end;