Функция AFIELDS()

Помещает информацию о структуре текущей таблицы в массив и возвращает количество полей в таблице.

Синтаксис

AFIELDS(ArrayName [, nWorkArea | cTableAlias])

Параметры
ArrayName
Задает массив, в который помещается информация о структуре таблицы. Если в функции AFIELDS() задано имя несуществующего массива, Visual FoxPro автоматически создает такой массив. Если задано имя существующего массива, который не в состоянии вместить всю информацию, возвращаемую функцией AFIELDS(), размер массива автоматически увеличивается надлежащим образом.
nWorkArea
Задает рабочую область таблицы, информация о структуре которой помещается в массив.
cTableAlias
Задает псевдоним таблицы, информация о структуре которой помещается в массив.
Если аргументы nWorkArea и cTableAlias опущены, в массив помещается информация о структуре таблицы, принадлежащей выбранной в данный момент рабочей области.
В следующей таблице описывается, какие данные и какого типа содержит каждый из столбцов массива. Для каждого табличного поля создается одна строка.

Номер столбцаСодержимое поляТип данных
1Имя поляСимвольный
2Тип поля:C = Character, D = Date, L = Logical, M = Memo, N = Numeric, F = Float, I = Integer, B = Double, Y = Currency, T = DateTime, G = GeneralСимвольный
3Ширина поляЧисловой
4Число десятичных знаковЧисловой
5Разрешены ли значения NULLЛогический
6Трансляция кодовой страници не разрешенаЛогический
7Правило уровня поляСимвольный
8Текст проверки достоверности поляСимвольный
9Значение поля по умолчаниюСимвольный
10Правило уровня таблицыСимвольный
11Текст проверки достоверности таблицыСимвольный

Результат:
Числовой

Комментарии:
Функция AFIELDS() возвращает количество полей в таблице. Массив содержит 11 столбцов и столько строк, сколько в таблице полей.
Используя команду COPY STRUCTURE EXTENDED, можно аналогичную информацию занести не в массив, а в таблицу.

Пример:

* В следующем примере создается массив gaMyArray, содержащий
* информацию о полях в таблице customer. Имена полей выводятся на
* экран.
CLOSE DATABASES
OPEN DATABASE (HOME( ) + 'samples\data\testdata')
USE Customer	&& Open customer table

gnFieldcount = AFIELDS(gaMyArray)	&& Create array
CLEAR
FOR nCount = 1 TO gnFieldcount 
	? gaMyArray(nCount,1)	&& Display field names
ENDFOR

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