Функция DESCENDING( )

Возвращает логическое значение, указывающее, было ли использовано ключевое слово DESCENDING при создании тега индекса или в командах USE, SET INDEX или SET ORDER.

Синтаксис:

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

Параметры:
CDXFileName
В аргументе CDXFileName можно задать имя файла составного индекса. Это может быть файл структурного составного индекса, автоматически открываемый вместе с таблицей, или файл независимого составного индекса.
nIndexNumber
Числовое выражение nIndexNumber задает тег индекса или файл индекса, который тестирует функция DESCENDING( ). Обычно в качестве nIndexNumber используется целое число, вначале равное 1, а затем последовательно наращиваемое на единицу, чтобы проверять последующие теги индекса.
Если номер nIndexNumber равен 1, возвращается значение для файла главного простого индекса .IDX или для тега главного индекса (если такой существует).
По мере увеличения nIndexNumber возвращаются значения для всех тегов структурного составного индекса (если таковой имеется). Эти значения возвращаются в том порядке, в каком создавались теги в структурном составном индексе.
После того как возвращены значения для всех тегов структурного составного индекса, начинают возвращаться значения для тегов всех открытых независимых составных индексов. Эти значения возвращаются в том порядке, в каком создавались теги в независимых составных индексах.
Если nIndexNumber больше общего числа открытых файлов простых индексов .IDX и тегов структурного составного и независимых составных индексов, возвращается пустая строка.
nWorkArea | cTableAlias
Возвращает значения для файлов или тегов индексов, открытых в рабочей области, отличной от текущей. nWorkArea задает номер рабочей области, а cTableAlias псевдоним таблицы.
Если ни у одной таблицы нет заданного вами псевдонима, Visual FoxPro выдает сообщение об ошибке.

Результат:
Логический

Комментарии:
Записи в таблице можно расположить в убывающем порядке двумя способами:
Можно указать ключевое слово DESCENDING в команде INDEX, чтобы создать в составном индексе .CDX тег индекса в убывающем порядке.
Можно указать ключевое слово DESCENDING в команде USE, SET INDEX или SET ORDER, чтобы задать убывающий порядок для тега главного индекса или для файла главного простого индекса (.IDX).
Функция DESCENDING( ) может определить, создан ли тег индекса в убывающем порядке. DESCENDING( ) возвращает значение "истина" (.T.), если заданный тег индекса был создан с помощью ключевого слова DESCENDING.
Функция DESCENDING( ) может также определить, задан ли убывающий порядок в теге главного индекса или в файле главного индекса. DESCENDING( ) возвращает значение "истина" (.T.), если в командах USE, SET INDEX или SET ORDER для заданного тега главного индекса или файла простого индекса (.IDX) использовалось ключевое слово DESCENDING.
Если функция DESCENDING( ) выдана без аргументов, она возвращает значения для тега главного индекса или файла главного индекса. Если аргументы не заданы, а тег главного индекса или файл (.IDX) недействителен (например, если вы выдали команду SET ORDER TO, чтобы установить в таблице физический порядок записей), DESCENDING( ) возвратит "ложь" (.F.).

Пример:

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

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