Параметр GroupingLevel задает уровень группировки полей индекса. Подробнее об этом см. ниже в разд. "Агрегаты" этой главы.

Основные свойства компонента, обеспечивающие управление индексами, совпадают с аналогичными свойствами табличных компонентов (подробнее об этом см. гл. 12). Поэтому лишь кратко перечислим их.

При работе с компонентом разработчик имеет возможность управлять индексами.

Созданный индекс подключается к набору данных свойством

property IndexName: String;

которое должно включать имя индекса или использовать свойство

prcperty IncTexField№mas: String;

в котором можно задать произвольное сочетание имен индексированных полей таблицы. Имена полей разделяются точкой с запятой. Свойства IndexName И IndexFieldNames нельзя ИСПОЛЪЗОвать Одновременно.

Число полей, используемых в текущем индексе табличного компонента, возвращает свойство

property IndexFieldCount: Integer;

Свойство

property IndexFields: [Index: Integer] : IField;

представляет собой индексированный список полей, входящих в текущий индекс.

Параметры созданных индексов доступны в свойстве

prcperty IndexDefs: TlndexDefs;

Класс TlndexDefs подробно рассматривается в гл. 12.

После создания и подключения индекса записи набора данных "переупорядочиваются" в соответствии со значениями индексированных гилей.

Удаление локального индекса обеспечивает метод

procedure Deletelndex (const Name: string) ;

После удаления текущего индекса или его отмены (обнуления свойства IndexName) записи набора данных "переупорядочиваются" в исходном порядке, соответствующем порядку записей набора данных на сервере.

Имена всех существующих в наборе данных индексов можно загрузить в список при помощи метода

procedure GetlndexNames (List: TStrings) ; Например:

Memol.Lines.Clear;
ClientDataSet.GetlndexNames(Memol.Lines);

Сохранение набора данных в файлах

Клиентское приложение может использовать одну очень удобную функцию компонента TClientDataSet. Представим, что соединение между сервером и клиентом обладает малой пропускной способностью и к тому же часто обрывается. Что в этом случае делать пользователю, который внес много изменений и не может сохранить их на сервере?

В этом случае можно сохранить набор данных клиента в файле на локальном диске, а при удобной возможности - загрузить обратно и переслать на сервер.

Для сохранения данных (по существу это буфер Data) в файле используется метод

procedure SaveToFile(const FileName: string = '';
Format: TDataPacketFormat=dfBinary);

Причем, если параметр FileName пуст, имя файла берется из свойства

property FileName: string;

Также можно передать данные в поток:

procedure SaveTfcStream(Stream: TStream;
Format: TDataPacketFormat=dfBinary);

Формат, в котором данные будут сохранены, определяется параметром

Format:

type TDataPacketFormat = {dfBinary, dfXML, dfXMLUTF8);

где dfBinary - бинарный вид, dXML - формат XML, dfXMLOTFS - формат XML в кодировке UTF8.

Обратная загрузка данных, соответственно, выполняется методами:

procedure LoadFromFile(const FileName: string = '');

И

procedure LoadFromStream(Stream: TStream) ;

⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Октябрь
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс