Функция IDXCOLLATE()

Возвращает последовательность сортировки для индекса или тега индекса.

Синтаксис:

IDXCOLLATE([cCDXFileName,] nIndexNumber [, nWorkArea | cTableAlias])

Параметры:
cCDXFileName
Задает имя файла составного индекса. Это может быть файл структурного составного индекса, автоматически открываемый вместе с таблицей, или файл независимого составного индекса.
nIndexNumber
Задает индекс или тег индекса, для которого функция IDXCOLLATE( ) возвращает последовательность сортировки. По мере увеличения значения nIndexNumber от 1 до общего количества открытых файлов индексов и тегов индексов, функция IDXCOLLATE( ) возвращает последовательности сортировки в следующем порядке:

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

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

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

Комментарии:
Функцию IDXCOLLATE( ) можно использовать для получения последовательности сортировки всех тегов в файлах многоэлементных составных индексах, это позволяет вам полностью удалить файл индекса и перестроить его в нужном виде, пользуясь последовательностью команд SET COLLATE и INDEX.
Следует отметить, что функция IDXCOLLATE( ) не нужна для правильной работы команды REINDEX, поскольку сведения о последовательностях сортировки имеются в существующих индексах и тегах индексов.
Подробнее об интернациональной поддержке в Visual FoxPro см. главу 20 " Разработка интернациональных приложений" Руководства разработчика.

Пример:

* В следующем примере открывается таблица customer в базе данных
* testdata. Структура FOR ... ENDFOR используется для организации цикла, в
* котором функция IDXCOLLATE( ) отображает последовательность
* сортировки для каждого тега структурного индекса 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
	?? IDXCOLLATE(nCount)	&& Display collation sequence
	ELSE
		EXIT		&& Exit the loop when no more tags are found
	ENDIF
ENDFOR

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