Если вы желаете создать индекс, который используется редко, например, для каких-то специальных целей, вы можете хранить его в неструктурном составном индексном (.cdx) файле, который может хранить множество индексов. Кроме того, вы можете хранить такие индексы, а также временные индексы в самостоятельных (.idx) файлах, включенных в поставку, для обеспечения совместимости в более ранними версиями. Для получения более подробной информации об индексных файлах для хранения нечасто используемых индексов смотрите Индексные файлы Visual FoxPro.

Вы можете создавать неструктурные .cdx файлы и самостоятельные .idx файлы используя команды языка Visual FoxPro.

Индексы в неструктурных составных индексных файлах

Для уже существующей таблицы вы можете создать индекс в неструктурном.cdx-файле, используя команду INDEX с опциями TAG и OF или с помощью копирования одного или более самостоятельных индексных файлов (.idx) с помощью команды COPY INDEXES.

Для создания индекса в неструктурном индексном .cdx-файле

  1. Используйте команду INDEX, для указания индексного выражения.

  2. Включите в нее опцию TAG для указания имени или тэга для индекса.

  3. Включите в нее опцию OF для указания имени неструктурного .cdx-файла.

Например, приведенные ниже строки кода открывают таблицу Employee в Visual FoxPro тестовой базе данных TestData, и создают индекс , основанный на поле Title. Команда INDEX включает в себя опцию TAG для указания имени или тэга для индекса и опцию OF для сохранения индекса в неструктурном .cdx-файле с именем QRTLYRPT с расширением .cdx:

  CopyCode imageСкопировать код
OPEN DATABASE (HOME(2) + 'Data\TestData')
USE Employee
INDEX ON Title TAG Title OF QRTLYRPT

Для получения более подробной информации смотрите описание команды OPEN DATABASE, USE и INDEX.

Для создания индекса в неструктурном индексном .cdx-файле из .idx-файла

  1. Используйте команду COPY INDEXES для указания одного или более имен .idx-файлов. Для включения каждого индексного ключа из всех открытых .idx-файлов используйте ключевое слово ALL.

  2. Включите в команду опцию TO для указания имени неструктурного .cdx-файла.

Для получения более подробной информации смотрите описание команды COPY INDEXES.

Индексы в самостоятельных индексных файлах

Для уже существующей таблицы, вы можете создать одноключевой (в статьях встречается, также термин одновходовой - JS) индекс в самостоятельном .idx-файле с помощью команды INDEX с включенной в нее опцией TO или с помощью копирования индекса из составного индексного (.cdx) файла с помощью команды COPY TAG.

NoteСовет

Для создания маленького и быстро доступного индексного файла, включите в команду опцию COMPACT. Однако, для создания .idx-файла, совместимого с форматами индексов FoxBASE+® и FoxPro® версии 1.0, опуститу опцию COMPACT.

NoteЗамечание

По умолчанию, .cdx-файлы всегда компактны.

Для создания одноключевого индекса

  1. Используйте команду INDEX для указания индексного выражения.

  2. Включите в команду опцию TO для указания имени .idx-файла.

  3. Включите в команду опцию COMPACT.

Например, приведенные ниже строки кодв открывают таблицу Orders в Visual FoxPro тестовой базе данных TestData и создают индекс, основанный на поле Order_Date. Опция TO указывает OrdDate как имя .idx-файла. Команда SET ORDER устанавливает порядок таблицы с файлом OrdDate, а команда BROWSE открывает окно просмотра, в котором записи отображаются, упорядоченные по полю Order_Date:

  CopyCode imageСкопировать код
OPEN DATABASE (HOME(2) + 'Data\TestData')
USE Orders
INDEX ON Order_Date TO OrdDate COMPACT
SET ORDER TO OrdDate
BROWSE

Для получения более подробной информации смотрите описание команд OPEN DATABASE, USE, INDEX, SET ORDER и описание окна Browse.

Кроме того, вы можете создать самостоятельный индекс из индекса в .cdx-файле с помощью команды COPY TAG.

Для создания одноключевого индекса из .cdx-файла

  1. Используйте команду COPY TAG для указания имени индекса в .cdx-файле.

  2. Если необходимо, включите в состав команды опцию FROM для указания имени .cdx-файла.

  3. Включите в состав команды опцию TO для указания имени .idx-файла.

  4. Включите в состав команды опциюCOMPACT.

Например, предположим, что они из индексов в структурном файле .cdx используется только для квартальных или годовых отчетов. Вы можете перенести этот индекс из файла .cdx file в .idx-файл. Приведенный ниже пример открывает таблицу Employee в тестовой базе данных TestData и создает одноключевой индекс, основанные на индексе с именем Birth_Date в структурном файле .cdx, ассоциированном с таблицей Employee. Одноключевой индекс сохраняется в .idx-файле, названном BirthDate.

  CopyCode imageСкопировать код
OPEN DATABASE (HOME(2) + 'Data\TestData')
USE Employee
COPY TAG Birth_Date TO BirthDate COMPACT
NoteЗамечание

Когда открывается таблица, то также открывается и структурный .cdx-файл, ассоциированный с этой таблицей.

NoteСовет

После создания файла .idx из .cdx-файла, вы должны удалить тэг из .cdx-файла. Для получения более подробной информации об удалении индексов смотрите Как: удалять индексы (Visual FoxPro).

Для получения более подробной информации смотрите описания команд  OPEN DATABASE, USE и COPY TAG.

Смотрите также