append from array 命令

示例 请参阅

对数组中的每一行,添加一条记录到当前选定表中,并从相应的数组行中取出数据添加到记录中。

语法

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

参数

ArrayName

指定数组名,该数组包含要复制到新记录中的数据。命令将把数组中所有的行都追加到表中。

FOR lExpression

为数组中用于追加的记录指定条件。在 lExpression 条件表达式中必须包含目标字段名。
在数组中的行追加到表中的记录之前,先检查与 lExpression 中指定的目标字段对应的数组元素是否满足 lExpression 中的条件。如果数组元素满足条件,则将记录追加表中。
如果数组元素不满足条件,这一数组行不追加到表中,并继续检查下一行。

FIELDS FieldList

指定只有 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*

说明

在 append from array 命令中,备注字段和通用字段将被忽略。如果表处于打开状态并被共享使用,在追加记录时,APPEND FROM ARRAY 命令将锁定表头。

如果数组是一维的,append from array 命令只在表中添加一个记录。第一个数组元素的内容将填充到新添加记录的第一个字段,第二个元素的内容将填充到记录的第二字段,… 依此类推。

如果一维数组元素的个数多于表字段数,将忽略多余的元素。如果表字段数多于数组元素的个数,多出的字段将初始化为默认的空值。下面给出了各种字段类型对应的默认空值。

字段类型 默认值
字符型 空格
数值型 0
货币型 0
浮点型 0
整型 0
双精度型 0
日期型 空日期 例如 CTOD(''))
时间型 空的日期时间型 例如 CTOT(''))
逻辑型 假(.F.)
备注型 空 无内容

当指定数组为二维数组,则为数组中的每一行在表中添加一个新记录。例如,如果数组有 4 行,则在表中追加 4 个新记录。

数组中第一列的内容赋值给新添加记录的第一个字段,第二列内容赋值给新记录的第二个字段,依此类推。例如,数组有四行三列,数组中的第一列元素分别赋值给四个新记录的第一个字段。

如果二维数组的列数多于表中的字段数,多余的列将被忽略。如果表字段数多于数组列数,多出的字段将初始化为空值 (empty value)。

例如数组元素数据与相应的字段数据类型兼容,那么即使相应的数组元素的数据类型与字段数据类型不匹配,APPEND FROM ARRAY也能填充字段。如果数据不兼容,字段将被初始化为空值。