Добавляет одну запись в выбранную в данный момент таблицу для каждой строки массива и заполняет каждую запись данными из соответствующей строки массива.
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:
Скопировать код
APPEND FROM ARRAY aMyArray FIELDS LIKE A*,P*
Предложение LIKE может использоваться в комбинации с предложением EXCEPT :
Скопировать код
APPEND FROM ARRAY aMyArray FIELDS LIKE A*,P* EXCEPT PARTNO*
Замечания
Поля типов 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( ). В этом случае для автоинкрементного поля или полей будет применено соответствующее инкрементное значение, а не значение из массива.
Пример
В следующем примере создается таблица и команда APPEND FROM ARRAY используется для добавления записей в нее.
![]() | |
---|---|
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 |