Добавляет одну запись в выбранную в данный момент таблицу для каждой строки массива и заполняет каждую запись данными из соответствующей строки массива.

APPEND FROM ARRAY ArrayName [FOR lExpression] 
   [FIELDS FieldList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton]

Параметры

ArrayName

Задает имя массива, содержащего данные, которые следует помещать в новые записи. Новые записи добавляются в таблицу до тех пор, пока не будут добавлены все строки массива.

FOR lExpression

Задает условие добавления записей из массива. Выражение lExpression должно содержать имя поля назначения в его условном выражении.

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

Если элемент массива не удовлетворяет этому условию, строка массива не добавляется и проверяется следующая строка массива - удовлетворяет она условию или нет.

FIELDS FieldList

Указывает, что помещать данные из массива следует только в поля, перечисленные в списке FieldList. В первое поле из списка помещается содержимое первого элемента массива, во второе поле - содержимое второго элемента и т.д.

FIELDS LIKE Skeleton

Указывает, что помещать данные из массива следует только в те поля, названия которых соответствуют шаблону Skeleton.

FIELDS EXCEPT Skeleton

Указывает, что помещать данные из массива следует во все поля, кроме тех, названия которых соответствуют шаблону Skeleton.

Шаблон имени поля Skeleton поддерживает подстановочные символы. В следующем примере данные из массива будут помещены только в поля, названия которых начинаются с букв A и P:

  CopyCode imageСкопировать код
APPEND FROM ARRAY aMyArray FIELDS LIKE A*,P*

Предложение LIKE может использоваться в комбинации с предложением EXCEPT :

  CopyCode imageСкопировать код
APPEND FROM ARRAY aMyArray FIELDS LIKE A*,P* EXCEPT PARTNO*

Expand imageЗамечания

Поля типов Memo, General, and Blob игнорируются командой APPEND FROM ARRAY.

Когда таблица открыта для совместного использования, команда APPEND FROM ARRAY блокирует заголовок таблицы на время добавления записей.

Если массив одномерный, APPEND FROM ARRAY добавляет в таблицу одну запись. Содержимое первого элемента массива заносится в первое поле добавленной записи, содержимое второго элемента - во второе поле и т.д.

Если в одномерном массиве больше столбцов, чем полей в таблице, "лишние" столбцы игнорируются. Если в таблице больше полей, чем столбцов в массиве, "лишние" поля инициализируются заданными по умолчанию "пустыми" значениями. В следующей таблице перечислены "пустые" значения для полей различных типов:

Тип поля Значение по умолчанию

Character

Пробел

Currency

0

Date

Пустая дата (CTOD(""))

DateTime

Пустое значение DateTime (CTOT(""))

Double

0

Float

0

Integer

0

Logical

Пусто

Memo

Пусто (нет содержимого)

Numeric

0

Если в команде участвует двухмерный массив, APPEND FROM ARRAY добавляет к таблице новую запись для каждой строки массива. Например, если в массиве четыре строки, к таблице будут добавлены четыре новые записи.

Содержимое первого столбца массива заполняет первые поля добавляемых записей, второй столбец - вторые поля, и т. д. Например, если массив состоит из четырех строк и трех столбцов, элементы первого столбца заполнят первые поля каждой из четырех новых записей, добавленных к таблице.

Если в двухмерном массиве больше столбцов, чем полей в таблице, "лишние" столбцы игнорируются. Если в таблице больше полей, чем столбцов в массиве, "лишние" поля инициализируются заданными по умолчанию "пустыми" значениями.

Команда APPEND FROM ARRAY может заполнить поле даже в том случае, если тип данных соответствующего элемента массива не совпадает с типом данных поля, но при условии, что данные элемента совместимы с типом данных этого поля. Если данные несовместимы, поле инициализируется "пустым" значением.

Если таблица, в которую производится добавление записей использует автоинкремент, команда APPEND FROM ARRAY потерпит неудачу, когда SET AUTOINCERROR установлена в ON и автоинкрементное поле не исключено из списка полей, в которые помещаются данные из массива, предложением FIELDS. Для успешной работы команды APPEND FROM ARRAY при использовании таблиц с автоинкрементными полями необходимо установить AUTOINCERROR в OFF или воспользоваться функцией CURSORSETPROP( ). В этом случае для автоинкрементного поля или полей будет применено соответствующее инкрементное значение, а не значение из массива.

Expand imageПример

В следующем примере создается таблица и команда APPEND FROM ARRAY используется для добавления записей в нее.

  CopyCode imageСкопировать код
LOCAL ARRAY aNewRec(3)

* Create the table
CREATE TABLE Test FREE  (Object C(10), Color C(16), SqFt n(6,2))
SCATTER TO aNewRec BLANK  && Create a new array from the table
aNewRec[1]="Box"         && Fill the array
aNewRec[2]="Red"
aNewRec[3]=12.5
APPEND FROM ARRAY aNewRec   && Add record containing array contents
          && to the table

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