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

Процедура Vozm_poshk

Vozm_poshk.prg

* Возможности поставщиков

CLEAR && очистить экран

CLOSE ALL && закрыть все файлы

USE poski && использовать ТБД poski

COPY fields nomp,nomd to vozm && копировать поля в новый файл vozm

? "Неиндексированный файл"

USE vozm && использовать vozm

DISPLAY all && отобразить все записи

WAIT

* Создание индексного файла vozm_p по полям nomp и nomd

INDEX ON nomp+nomd TO vozm_p COMPACT && индексация по nomp, а внутри по nomd

* Создание индексного файла vozm_d по полям nomd и nomp

INDEX ON nomd+nomp TO vozm_d COMPACT && индексация по nomd, а внутри по nomp

? "Индекс nomp+nomd"

USE vozm INDEX vozm_p && открыть vozm с индексом vozm_p

DISPLAY all && отбразить все записи

WAIT

? "Индекс nomd+nomp"

USE vozm INDEX vozm_d && открать vozm с индексом vozm_d

DISPLAY all && отобразить все записи

WAIT

RETURN && перевод из командного режима СУБД в свободный

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

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

Процедура Тype_index

Тype_index.prg

* Приведение индексов разных типов к одному типу

CLEAR && очистить экран

CLOSE ALL && закрыть все файлы

USE poski && использовать ТБД poski

* Создание индексного файла ppnk по полям nomp и kolw.

* Команда STR(kolw,4) для преобразования численного выражения в символьную строку

INDEX ON nomp+STR(kolw,4) TO ppnk compact

DISPLAY all && отобразить все записи

WAIT

* Создание индексного файла pnk по полям kolw и nomp.

* Команда VAL(substr(nomp,2,1)) для преобразования символьного выражения в численное.

* Команда substr(nomp,2,1) выделяет, начиная со второго символа, один строковый символ в значениях поля nomp

INDEX ON kolw+VAL(substr(nomp,2,1)) TO pnk compact

DISPLAY all

WAIT

Процедура dopoln_index

dopoln_index.prg

*Дополнительные индексы*

CLEAR

CLOSE tables all

? "1.Создание простого индекса по полю famp"

USE poshk

INDEX ON famp TO Poshk_f compact

list

WAIT

clear

? "2.Создание простого индекса по полю gord"

INDEX ON gord TO poshk_g compact

LIST

WAIT

clear

? "3.Создание составного индекса по простому выражению"

USE poshk exclusive

INDEX ON famp TAG tagfamp

SET ORDER TO tagfamp

LIST

WAIT

clear

? "4.Создание составного индекса по составному выражению"

Use poski exclusive

INDEX ON nomp+nomd+nomr+DTOC(data)Tag Poski_in

DISPLAY all

WAIT

CLEAR

? "5.Создание составного индекса с преобразованием типов данных:"

? "Мы преобразуем numeric в character"

USE poski EXCLUSIVE

INDEX ON nomp+STR(kolw,4) TAG Poski_nk

DISPLAY all

WAIT

CLEAR

? "6.Создание составного индекса с преобразованием типов данных:"

? "Мы преобразуем character в numeric"

USE poski EXCLUSIVE

INDEX ON kolw+VAL(nomp) TAG Poski_kn

DISPLAY all

WAIT

CLEAR

RETURN