Изучение свойств редактора БД Browse. Индексирование базы данных, страница 2

8. В окне "Sort" нажмите кнопку ОК.

9. Используя опцию Open из меню команды File, откройте файл st_sort. dbf и просмотрите его (Database/Browse). Убедитесь, что записи отсортированы в нужном /.`o$*%.

2.1. 3. Индексирование

Индексы бывают простые и сложные, в зависимости от количества полей, по которым сортируются данные таблицы.

Различают два типа индексных файлов:

1. Простые индексные файлы. Имеют расширение имени файла IDX и содержат по одному элементу для каждой записи данных таблицы.

2. Мультииндексные файлы.

Имеют расширение CDX и могут осуществлять управление одновременно несколькими ключами. Отдельные ключи называются Tags (тегами).  Мультииндексные файлы FoxPro автоматически открывает вместе с БД, так как они носят то же имя, что и соответствующая таблица БД.

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

Простой индекс можно установить при создании структуры таблицы, указав в поле Tag направление сортировки (стрелка вниз или стрелка вверх). Проделаем это на примере.

Пример1.

Упорядочим записи в таблицы по полю "дат_заяв", то есть по дате подачи заявления.

1. Откройте таблицу student. dbf, используя опцию Open из меню команды File.

2. Выберите опцию Setup из меню команды Database.

3. В окне диалога "Setup" нажмите кнопку Modify из зоны Structure. На экране появилась структура вашей таблицы.

Установите указатель на столбец Tag для поля "дат_заяв" и, щелкая правой кнопкой "мыши", установите сортировку по возрастанию (стрелка вверх). Нажмите кнопку ОК.

4. В списке Index отмаркируйте созданный индекс и нажмите кнопку Set Order. Индекс будет отмечен пиктограммой ключа.

5. В окне "Setup" нажмите кнопку ОК.

6. Просмотрите БД и убедитесь, что записи отсортированы по дате подачи заявления.

Пример 2.

Записи в таблице отсортируем по среднему баллу (поле ср_балл), а внутри - по фамилии абитуриентов (поле фио).

1.  Выберите опцию New из меню команды File. В окне "New" выберите опцию Index и нажмите кнопку New.

2. На экране открылось окно диалога "Index". Установите опцию Ascending.

3. В строке ввода Tag введите 'абитуриент'. Нажмите кнопку Index Key.

4. В строке ввода выражения для индекса введите str (ср_балл,, 1)+ фио. Нажмите кнопку ОК.

5. В окне "Index" нажмите кнопку Add to Index Key. Условие сортировки появилось в списке Tag Index.

6. Нажмите кнопку ОК. Файл индекса создан.

7. Для активизации созданного файла выберите опцию Setup из меню команды Database.

8. На экране открылось уже знакомое вам окно "Setup". В списке Indexes приведены все индексы, определенные в активной в данный момент БД, с указанием способа сортировки. Маркируйте индекс Student: абитуриент и нажмите кнопку Set Order. Индекс будет отмечен пиктограммой ключа - это идентификатор главного ключа, который имеет наивысший приоритет и по которому сортируется БД.

9. Нажмите кнопку ОК. Просмотрите БД (Database/Browse) и убедитесь, что записи отсортированы должным образом.

Необходимо при каждом новом запуске программы снова  давать определение главному индексу. Для отмены всех индексов маркируйте главный ключ (пиктограмма ключа), нажмите кнопку No Order в окне "Setup" и убедитесь, что пиктограмма ключа отсутствует в списке индексов.