при сохранении в файл размер файла остается прежним!Как действительно стереть все данные и размер файла?
Используя собственный тестовый файл .CDS, я не могу воспроизвести ваши результаты - см. Комментарии в следующем коде, которые показывают, что после EmptyDataSet
,(повторно) сохраненный файл имеет вероятный, намного меньший размер.
procedure TForm1.FormCreate(Sender: TObject);
begin
EmptyDataSetTest;
end;
procedure TForm1.EmptyDataSetTest;
var
SourceFN,
DestFN : String;
begin
SourceFN := ExtractFilePath(Application.ExeName) + '\Data\CDSData.Cds';
// SourceFN file is 333709 bytes acc to a Dir command in a CMD window
DestFN := ExtractFilePath(Application.ExeName) + '\Data\DestCDSData.Cds';
myClientDataSet.LoadFromFile(SourceFN);
myClientDataSet.EmptyDataSet;
myClientDataSet.SaveToFile(DestFN);
// DestFN file is 2268 acc to a Dir command in a CMD window
DestFN := ChangeFileExt(DestFN, '.XML');
myClientDataSet.SaveToFile(DestFN, dfXML);
// .XML file is 5128 and the file contains only the field
// FIELD descriptor tags under the \DATAPACKET\METADATA\FIELDS node
end;
Так что если ваш сохраненный файл действительно тот же файл и имеет размер файла, это должно быть из-за того, что вы не сказали нам в вопросе.Попробуйте позвонить
myClientDataSet.Close;
myClientDataSet.Open;
после
myClientDataSet.CreateDataSet;