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

AFIELDS( ArrayName [, nWorkArea | cTableAlias ] )

Параметры

ArrayName

Определяет имя массива для хранения информации о структуре таблицы.

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

nWorkArea

Указывает рабочую область, в которой открыта таблица.

cTableAlias

Указывает псевдоимя таблицы.

Если вы опустите nWorkArea и cTableAlias, AFIELDS( ) вернет информацию о таблице, открытой в текущей рабочей области.

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

Численный тип данных. AFIELDS( ) возвращает число полей в таблице. Массив содержит 18 колонок и количество строк, равное числу полей в таблице.

В приведенной ниже таблице описывается содержание каждой колонки в первой строке массива и тип данных информации, хранимой в каждой колонке. Значения для свойств, относящихся к таблице появляеться только в первой строке массива и размещаются в колонках с 10-й по 16-ю. One row is created for each field in the table.

Номер колонки Информация о поле Тип данных

1

имя поля

Character

2

тип поля:

C = Character

Y = Currency

D = Date

T = DateTime

B = Double

F = Float

G = General

I = Integer

L = Logical

M = Memo

N = Numeric

Q = Varbinary

V = Varchar and Varchar (Binary)

W = Blob

Character

3

ширина поля (Field width)

Numeric

4

Число десятичный мест, после запятой (Decimal places)

Numeric

5

допускаются Null значения

Logical

6

Не разрешена трансляция кодовых страниц

Logical

7

Выражение проверки поля (Field validation expression)

Character

8

Текст выражение проверки поля (Field validation text)

Character

9

Значение поля по умолчанию (Field default value)

Character

10

Выражение проверки таблицы (Table validation expression)

Character

11

Текст выражение проверки таблицы (Table validation text)

Character

12

Длинное имя таблицы

Character

13

Выражение триггера вставки (Insert trigger expression)

Character

14

Выражение триггера обновления (Update trigger expression)

Character

15

Выражение триггера удаления (Delete trigger expression)

Character

16

Комментарий к таблице (Table comment)

Character

17

NextValue для автоувеличения

Numeric

18

Шаг автоувеличения (Step)

Numeric

Expand imageПримечания

Если поля в таблице используют автоувеличение значений, то это можно определить по значению Step, которое в таком случае больше, чем 0.

Вы можете использовать COPY STRUCTURE EXTENDED для размещения подобной инфомации в таблицу вместо массива, используемого в данной функции.

Expand image Пример

Приведенный ниже пример создает массив с именем gaMyArray, который содержит информацию о полях таблицы Customer. Отображаются имена полей.

  CopyCode imageСкопировать код
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE Customer     && открывается таблица Customer.

gnFieldcount = AFIELDS(gaMyArray)  && создается массив.
CLEAR
FOR nCount = 1 TO gnFieldcount 
   ? gaMyArray(nCount,1)  && отображаются имена полей.
ENDFOR

Expand image Смотрите также