Помещает информацию о структуре текущей таблицы в массив и возвращает количество полей в таблице.
Синтаксис
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