Функция KEY()

Возвращает выражение ключа индекса для тега индекса или файла индекса.

Синтаксис:

KEY([CDXFileName,] nIndexNumber [, nWorkArea | cTableAlias])

Параметры:
CDXFileName
Задает имя файла составного индекса. Функция KEY( ) возвращает выражения ключа индекса для тега индекса .CDX. Заданный файл составного индекса может быть структурным составным индексом, который автоматически открывается вместе с таблицей, или файлом независимого составного индекса.
nIndexNumber
Указывает, какое выражение ключа индекса следует возвратить.
Команды USE и SET INDEX обе поддерживают список файлов индексов, что позволяет открывать для одной таблицы несколько индексов. В этот список можно включать файлы простых индексов .IDX, файлы структурных составных индексов или файлы независимых составных индексов в любых сочетаниях.
Числовое выражение nIndexNumber определяет, для какого именно открытого файла индекса должно быть возвращено выражение индекса. По мере того как nIndexNumber увеличивается от 1 до общего числа открытых файлов простых индексов .IDX и тегов структурных составных и независимых составных индексов, функция KEY( ) возвращает выражения индекса в следующем порядке:

  1. Вначале возвращаются выражения индекса для файлов простых индексов .IDX (если они существуют и открыты). Порядок их возвращения определяется порядком включения файлов простых индексов в команду USE или SET INDEX.
  2. Затем возвращаются выражения индекса для каждого тега структурного составного индекса (если таковой имеется). Они возвращаются в том порядке, в каком эти теги создавались в структурном составном индексе.
  3. Наконец, возвращаются выражения индекса для каждого тега во всех открытых независимых составных индексах. Они возвращаются в том порядке, в каком эти теги создавались в независимых составных индексах.

Если nIndexNumber больше общего числа открытых файлов простых индексов .IDX и тегов структурных составных и независимых составных индексов, возвращается пустая строка.
nWorkArea
Задает номер рабочей области таблицы, для которой вы хотите получить выражения ключей индекса.
Если в заданной рабочей области нет открытых таблиц, функция KEY( ) возвращает пустую строку.
cTableAlias
Задает псевдоним таблицы, для которой вы хотите получить выражения ключей индекса.
Если ни у одной таблицы нет заданного вами псевдонима, Visual FoxPro генерирует сообщение об ошибке.
Если аргументы nWorkArea и cTableAlias опущены, возвращаются выражения индекса для таблицы, открытой в текущей рабочей области.

Результат:
Символьный.

Комментарии:
Выражение ключа индекса задается при создании тега индекса или файла индекса с помощью команды INDEX. Это выражение определяет, как будет отображаться таблица и как будет происходить доступ к ней, когда этот тег индекса или файл индекса откроется в качестве главного управляющего тега или файла индекса.
Подробнее о создании тегов индексов, файлов индексов и выражений ключей индекса см. описание команды INDEX.

Пример:

* В следующем примере открывается таблица customer в базе данных
* testdata. Структура FOR ... ENDFOR используется для организации цикла, в
* котором функция KEY( ) отображает выражение индекса для каждого
* тега структурного индекса customer. На экран выдается имя каждого
* тега структурного индекса вместе с его выражением индекса.

CLOSE DATABASES
OPEN DATABASE (HOME( ) + 'samples\data\testdata')
USE Customer		&& Open customer table
CLEAR

FOR nCount = 1 TO 254
	IF !EMPTY(TAG(nCount))	&& Checks for tags in the index
	? TAG(nCount) + ' '		&& Display tag name
	?? KEY(nCount)		&& Display index expression
	ELSE
		EXIT	&& Exit the loop when no more tags are found
	ENDIF
ENDFOR

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 12.02.2003