Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Индексация_новая.doc
Скачиваний:
1
Добавлен:
17.11.2019
Размер:
192 Кб
Скачать

Создание индексов интерактивным способом Процедура indexes

В этой процедуре производится работа с индексами различных типов, созданных интерактивным способом в таблице poshk. Процедура сохраняется под именем indexes.

*Файл indexes.prg

*Просмотр индексов

CLEAR

CLOSE TABLES ALL

? "Выполнение индексированного файла poshk"

? "Индексирование по первичному ключу - коду поставщика"

USE poshk ORDER nomp_i && Использование ТБД poshk с индексом nomp_i

LIST

WAIT

set ORDER TO 2 && Перейти ко второму индексу

CLEAR

? "Второй индекс. Индексирование по полю stat"

LIST

WAIT

set ORDER to 3 && Перейти к третьему индексу

CLEAR

? "Индексирование по полю stat с фильтром>10"

LIST

WAIT

set ORDER to 4

CLEAR

? "Индексирование по полям gord+famp"

LIST

WAIT

set ORDER to 5

CLEAR

? "Индексирование по полю gord"

LIST

WAIT

set ORDER to 6

CLEAR

? "Индексирование по полям famp+gord "

LIST

WAIT

CLEAR

? "Закрытие индексов"

WAIT

SET ORDER TO

CLEAR

RETURN

Рассмотрим подробнее результат индексации таблицы по каждому из созданных индексов для этой таблицы.

Индекс nomp_i (Primary) по полю nomp. В результате выполнения индексации по первичному ключу, заданному для номера поставщика, на экран выведется таблица (если вы работаете командным способом) или данные (если вы запускаете процедуру на выполнение), в которой записи отсортированы по номеру поставщика.

Индекс STAT_I (Regular) по полю stat. В результате индексации по второму индексу на экран выведется таблица или данные, где записи будут отсортированы по статусу поставщика.

Индекс STAT_IL (Regular) по полю stat, но с заданным фильтром stat>10.

В результате индексации по третьему индексу на экран выведется таблица или данные, где записи будут отсортированы по статусу поставщика, значение которого (статуса) превышает 10.

Индекс GF_I (Regular) составной по полям gord+famp.  

В результате индексации по четвертому индексу на экран выведется таблица или данные, где записи будут отсортированы по городу поставщика, а затем по фамилии поставщика, причем подряд будут идти две записи с городом «КИЕВ».

Индекс GF_In (Regular) по полю gord.

В результате индексации по пятому индексу на экран выведутся таблица или данные, где все записи названий городов будут отсортированы в алфавитном порядке, причем подряд будут идти две записи с городом «КИЕВ».

Индекс GF_In1 (Regular) составной по полям famp+gord.

В результате индексации по шестому индексу на экран выведется таблица или данные, где записи будут отсортированы по фамилии поставщика, а затем внутри списка фамилий - по городу.

Для наглядности используем окно Command, куда необходимо ввести следующий текст:

USE D:\BAZA\Poshk.dbf

Set order to 1 * Что означает: передача управления главному индексу

Эту же команду можно заменить командой с указанием имени индекса, вместо его номера:

Set order to nomp_i

BROWSE

Set order to 2

BROWSE

Set order to 3

BROWSE

Set order to 4

BROWSE

Set order to 5

BROWSE

Set order to 6

BROWSE

Далее меняем фамилию «ПЕТРОВ» в городе «МОСКВА» на фамилию «МЕДВЕДЕВ».

REINDEX

Снова индексируем по шестому индексу.

Set order to 6

BROWSE

Мы видим, что порядок записей поменялся. Для восстановления прежнего состояния файла заменяем фамилию «МЕДВЕДЕВ» в городе «МОСКВА» на фамилию «ПЕТРОВ».