Распечатать страницу

Управление индексами в Visual FoxPro

« Назад

Таблица может иметь несколько индексных IDX- и CDX-файлов.

IDX-файл содержит один индекс, имя которого совпадает с именем файла. CDX-файл может содержать несколько индексов, называемых также тегами. Сам же индексный CDX-файл называется поэтому составным.

Один из CDX-файлов может быть структурным, то есть входящим в структуру таблицы. Его имя совпадает с именем таблицы и он всегда открывается вместе с таблицей. Кроме того, он размещается в той же директории, что и таблица.

Прочие CDX-файлы таблицы, если таковые имеются, являются независимыми. Имя независимого CDX-файла отличается от имени таблицы; его размещение также не привязано к директории таблицы.

CDX-файлы и их теги и IDX-файлы создаются командой INDEX. Структурный CDX-файл и его теги могут быть созданы интерактивно, а также программно командами CREATE TABLE – SQL и ALTER TABLE – SQL.

По умолчанию записи упорядочиваются в индексных файлах по возрастанию. Чтобы изменить порядок сортировки в индексном файле, при создании индекса или тега употребляется опция DESCENDING. Эта же опция может быть применена и для изменения порядка доступа к записям файла при установке контролирующего IDX-индекса или CDX-тега в командах USE, SET INDEX и SET ORDER.

Открываются индексные IDX- и независимые CDX-файлы таблицы командой USE, употребленной с опцией INDEX. Когда таблица открыта, индексные файлы можно открыть командой SET INDEX.

Несколько индексных файлов таблицы могут быть открыты одновременно. Управляющим, однако, является один IDX-файл или тег составного индексного CDX-файла. Управляющий индексный файл или управляющий тег определяет порядок, в котором записи отображаются и обрабатываются. Например, управляющий индексный файл или тег используется командой SEEK и одноименной функцией.

Назначается управляющий индексный файл или тег командой SET ORDER, а также командами USE и SET INDEX.

Не открытые независимые CDX- и индексные IDX-файлы при добавлении, удалении и модификации записей таблицы не обновляются. Таким образом, индексные файлы могут стать неотвечающими таблице. Восстановление соответствия индексного файла и таблицы осуществляется командой REINDEX; и таблица и обновляемый файл должны быть открыты.

Структурный CDX-файл, поскольку он всегда открывается вместе с таблицей, обновляется в процессе работы приложения. Причинами несоответствия такого индексного файла и таблицы могут стать только сбои в работе приложения или системы.