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

         

BUILD (построить ключи и/или индексы для файла)


| ключ |
BUILD( |индекс| [,компоненты])
| файл |

ключ Метка описания КЛЮЧА.
индекс Метка описания ИНДЕКСА.
файл Метка описания ФАЙЛА.
компоненты Строковая константа или переменная, содержащая список полей, на основе которых построить динамический ИНДЕКС. Имена полей должны разделяться запятыми, перед именем поля должен стоять знак плюс или минус, чтобы задать сортировку по возрастанию или по убыванию.

Оператор BUILD строит ключи и индексы. BUILD(ключ), BUILD(индекс) и BUILD(файл) требуют монопольного доступа к файлу. Т.е., файл должен быть заблокирован (через LOCK) или открыт с кодом доступа 12h (ВСЕМ кроме меня запрещено чтение/запись) или 22h (ВСЕМ кроме меня запрещена запись). BUILD(индекс,компоненты) НЕ требует монопольного доступа к файлу.

BUILD(ключ)
BUILD(индекс)
Строит только указанный КЛЮЧ или ИНДЕКС. Файл должен быть закрыт, заблокирован или открыт в режиме 12h или 22h.
BUILD(файл) Строит все КЛЮЧИ или ИНДЕКСЫ ФАЙЛА. Файл должен быть закрыт, заблокирован или открыт в режиме доступа 12h или 22h.
BUILD(индекс,компоненты) Позволяет строить динамический ИНДЕКС. Эта форма BUILD не требует монопольного доступа к файлу, тем не менее файл должен быть открыт в любом разрешенном режиме доступа. Динамический ИНДЕКС создается как временный файл только для строящего его пользователя. Этот временный файл автоматически удаляется при закрытии файла.

Возвращаемые ошибки:
37 Файл еще не открыт
40 Такой ключ уже есть
63 Требуется монопольный доступ
76 Неверные параметры для индекса
Пример:
Names FILE,DRIVER('Clarion'),PRE(Nam)!Описание структуры файла
NameKey KEY(Nam:Name).OPT !Описание ключа по имени
NbrNdx INDEX(Nam:Number),OPT !Описание индекса по но-
! меру
DynNdx INDEX() !Описываем динамический
! индекс
Rec RECORD
Name STRING(20)
Number SHORT
. .
CODE
OPEN(Names,12h) !Открываем файл с исключительным
! правом чтения/записи
BUILD(Names) !Строим все ключи для файла имен
BUILD(Nam:NbrNdx) !Строим индекс по номеру
BUILD(Nam:DynNdx.'-Nam:Number,+Nam:Name')
!Строим динамический индекс - по номеру с убыванием,
! по имени с возрастанием.
См. также: ,



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