Сохранение набора данных в файлах
Клиентское приложение может использовать одну очень удобную функцию компонента TClientDataSet. Представим, что соединение между сервером и клиентом обладает малой пропускной способностью и к тому же часто обрывается. Что в этом случае делать пользователю, который внес много изменений и не может сохранить их на сервере?
В этом случае можно сохранить набор данных клиента в файле на локальном диске, а при удобной возможности – загрузить обратно и переслать на сервер.
Для сохранения данных (по существу это буфер Data) в файле используется метод:
procedure SaveToFile(const FileName: string = ''; Format: TDataPacketFormat=dfBinary);
Причем, если параметр FileName пуст, имя файла берется из свойства:
property FileName: string;
Также можно передать данные в поток:
procedure SaveToStream(Stream: TStream; Format: TDataPacketFormat=dfBinary);
Формат, в котором данные будут сохранены, определяется параметром:
Format! type TDataPacketFormat = (dfBinary, dfXML, dfXMLUTFS);
Где:
- dfBinary – бинарный вид,
- dfXML – формат XML,
- dfXMLUTFS – формат XML в кодировке UTF8.
Обратная загрузка данных, соответственно, выполняется методами:
procedure LoadFromFile(const FileName: string = '');
…и:
procedure LoadFromStreamfStream: TStream);
После загрузки набор данных полностью готов к работе:
if LoadFileDialog.Execute then begin ClientDataSet.LoadFromFile (LoadFileDialog.FileName); ClientDataSet.Open; end;