Возвращает значение =  true (.T.), если индексный Тэг является Первичным Индексным Тэгом; в противном случае возвращается значение = false (.F.).

PRIMARY([nIndexNumber] [, nWorkArea | cTableAlias])

Параметры

nIndexNumber

Определяет номер индексного Тэга, для которого выполняется функция PRIMARY( ), выполняется тестирование данного Тэга на Первичный Ключ. PRIMARY( ) возвращает статус "Первичности" тэга; значение параметра nIndexNumber изменяется от 1 - до общего количества тэгов всех открытых индексных файлов: структурных и упакованных-независимых (.cdx).

  1. Сначала возвращается статус Первичного Ключа для каждого индексного тэга Структурированного индексного файла (если таковой имеется); он открывается в первую очередь, индексные тэги обрабатываются в данном файле в порядке их создания.

  2. Далее определяется статус первичного ключа для тэгов, размещенных в независимых - упакованных индексных файлах, открываемых после структурированного. Индексные тэги в этих файлах также обрабатываются в порядке их создания.

    Если параметр nIndexNumber не указан, функция PRIMARY( ) проверяет статус первичного ключа для текущего (активного) индексного тэга. Если данный тэг не является Первичным, PRIMARY( ) возвращает значение = false (.F.).

nWorkArea

Определяет номер рабочей области, в которой открыта таблица, для индексного тэга которой выполняется проверка статуса Первичности, с номером тэга nIndexNumber.

cTableAlias

Определяет имя Алиаса таблицы, индексный тэг которой проверяется.

Если параметры nWorkArea или cTableAlias - не указываются, PRIMARY( ) проверяет статус Первичности индексного тэга для таблицы, открытой в текущей рабочей области.

Expand imageВозвращаемое значение

Логического типа

Expand imageПример

В представленном ниже примере: из тестовой базы данных открывается Таблица с именем customer. С помощью оператора цикла FOR ... ENDFOR выполняется перебор всех существующих индексных тэгов, определяются их имена и статус Первичного ключа для каждого индексного тэга.

  CopyCode imageКопировать Код
CLOSE DATABASES
SET PATH TO (HOME(2) + 'Data\') && Sets path to database
OPEN DATABASE testdata && Open testdata database
USE Customer && Open customer table

FOR nCount = 1 TO TAGCOUNT( )
IF !EMPTY(TAG(nCount)) && Checks for tags in the index
? TAG(nCount) && Display tag name
? PRIMARY(nCount) && Display primary status
ELSE
EXIT && Exit the loop when no more tags are found
ENDIF
ENDFOR

Expand imageСм. также