Список имен всех индексов можно получить при помощи метода GetlndexNames.

( Примечание ^

Изменение текущего индекса можно осуществлять без отключения набора данных, поэтому в приложениях очень удобно делать сортировку данных по индексам. Такой метод смены индексов называется индексацией "налету".

После установки индекса количество полей в индексе передается в свойство IndexFi eldCount.

Список описаний индексов

Информация об индексах набора данных содержится в свойстве класса

TDataSet

property IndexDefs: TindexDefs;

В нем для каждого индекса создается структура TindexDef. Доступ к информации об индексах осуществляется через свойство

property Items [Index: Integer] : TmdexDef; default; являющееся списком объектов TindexDef.

Объекты типа TindexDef можно добавлять в список при помощи метода

function AddlndexDe f: TindexDef ;

Поиск объекта описания индекса осуществляет метод

function Find(const Name: String): TindexDef;

который возвращает найденный объект по заданному в параметре Name имени индекса.

Пара методов

function FindlndexForFields(const Fields: string): TmdexDef;
function GetlndexForFields (const Fields: String;
Caselnsensitive: Boolean): TindexCfef;

находит объект описания индекса по списку полей, входящих в индекс. Если индекс не найден, ищется первый индекс, начинающийся с указанных полей. Первый из этих двух методов в случае неудачного поиска генерирует исключительную ситуацию EDatabaseError, а второй возвращает nil.

Список indexDefs обновляется автоматически при открытии набора данных. Но метод

procedure Update;
reintroduce;

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

Описание индекса

Параметры каждого индекса набора данных представлены в классе TindexDef, а их совокупность для набора данных содержится в свойстве

IndexDefs класса TDataSet.

Свойство

property Name: String; определяет название индекса.

Список всех полей индекса содержится в свойстве

property Fields: String;

Поля разделяются точкой с запятой.

Свойство

property CaselnsFields: String;

содержит список полей, регистр символов в которых при сортировке не учитывается. Поля разделяются точкой с запятой. Все поля из этого списка должны входить в свойство Fields. В наборе данных по умолчанию используется сортировка записей с учетом регистра символов. Но некоторые серверы БД допускают комбинированную сортировку по полям с учетом регистра и без.

Свойство

property DescFields: String;

содержит список полей через точку с запятой, которые сортируются в обратном порядке. Все поля из этого списка должны входить в свойство Fields. По умолчанию все поля сортируются в прямом порядке. Некоторые серверы БД поддерживают одновременную сортировку полей в прямом и обратном порядке.

Свойство

property GroupingLevel: Integer;

позволяет ограничить область применения индекса. Если значение этого свойства равно нулю, индекс упорядочивает все записи набора данных. В противном случае действие индекса распространяется на группы записей, имеющих одинаковые значения для того числа полей, которое задано этим свойством.


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

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



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

  • Июнь
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс