Информация об индексах набора данных содержится в свойстве класса
TDataSet
property IndexDefs: TindexDefs;
В нем для каждого индекса создается структура TindexDef. Доступ к информации об индексах осуществляется через свойство
property Items[Index: Integer]: TindexDef; default;
являющееся списком объектов TindexDef.
Объекты типа TindexDef можно добавлять в список при помощи метода
function AddlndexDef: TindexDef;
Поиск объекта описания индекса осуществляет метод
function Find(const Name: String): TindexDef;
который возвращает найденный объект по заданному в параметре Name имени индекса.
Пара методов
function FindlndexForFields(const Fields: string): TindexDef;
function GetlndexForFields(const Fields: String;
Caselnsensitive: Boolean): TindexDef;
находит объект описания индекса по списку полей, входящих в индекс. Если индекс не найден, ищется первый индекс, начинающийся с указанных полей. Первый из этих двух методов в случае неудачного поиска генерирует исключительную ситуацию EDatabaseError, а второй возвращает nil.
Список IndexDefs обновляется автоматически при открытии набора данных. Но метод
procedure Update; reintroduce;
обновляет список описаний индексов без открытия набора данных.