Документация по Clarion

       

KEY (описывает динамический индекс (ключ) для файла)


метка KEY([-][field])[NAME()][,NOCASE][,OPT]

- Знак МИНУС перед компонентой ключа означает, что для полей с этой компонентой, индекс сортируется по убыванию (от больших значений к меньшим), по умолчанию сортировка по возрастанию.
field Метка поля из структуры RECORD файла, для которого строится ключ. Поле - это компонента ключа. Переменные с атрибутом DIM (массивы) нельзя использовать в качестве ключевых полей.
NAME Имя файла для ключа.
OPT В ключ не попадут сведения о тех записях, у которых все поля, используемые как компоненты ключа, пусты или содержат нуль.
NOCASE Сортировку проводить без учета регистра.
DUP В файле данных разрешены записи с одинаковыми значениями ключевых полей.

KEY - это индекс файла данных, который автоматически обновляется при добавлении, изменении или удалении записей. Он используется для доступа к записям в порядке, отличном от физического размещения записей в файле. INDEX можно использовать как для последовательного, так и для произвольного доступа к файлу.
KEY может строиться на основании более чем одного поля. Порядок, в котором заданы компоненты ключа, определяет порядок сортировки записей по этому индексу. Самые первые компоненты МЕНЕЕ значимы, самые последние - БОЛЕЕ. В общем, файл данных может иметь до 255 ключей (и индексов) и каждый ключ может быть длиной до 255 байт (имеется в виду суммарная длина всех полей, задействованных для построения ключа), хотя точное число ключевых и индексных файлов зависит от файлового драйвера.
Пример:
Names FILE,DRIVER('Clarion'),PRE(Nam)
NameKey KEY(Nam:Name),NOCASE,DUP !Ключ по имени
NbrKey KEY(Nam:Number),OPT !Ключ по номеру
Rec RECORD
Name STRING(20)
Number SHORT
CODE
Nam:Name = 'Clarion Software' !Инициализируем ключевое
! поле
GET(Names,Nam:NameKey) !Читаем запись
SET(Nam:NbrKey) !Обрабатывать в порядке
! возрастания поля
! NAM:NUMBER
См. также: , ,



Содержание раздела