Note | 该命令在头文件中定义,将由 X# 预处理器预处理为函数调用。如果禁用标准头文件 (-nostddefs),该命令将不可用。如果告诉编译器使用不同的标准头文件(-stddef ),则此命令也可能不可用。 |
为当前记录中一个或多个字段的内容分配新值。
SCATTER [FIELDS <idFieldList> | FIELDS LIKE <Skeleton>
| FIELDS EXCEPT <Skeleton>] [MEMO] [BLANK]
| TO ArrayName | MEMVAR
| NAME ObjectName [ADDITIVE]
FIELDS <idFieldList> | 要处理的字段列表。默认为所有字段,备注字段除外,除非命令支持 MEMO 子句。 |
只有两个文件中名称和类型相同的字段才会被附加。 如果相同名称的字段在数据类型上不匹配,则会出现运行时错误。 |
FIELDS LIKE <Skeleton> | 可以使用通配符指定字段名称,例如 FIELDS LIKE *name |
FIELDS EXCEPT <Skeleton> | 可以排除主键等字段: FIELDS EXCEPT Id <Skeleton> 支持使用通配符(* 和 ?)。 例如,要替换所有以字母 A 和 P 开头的字段,请使用 FIELDS LIKE A*,P* |
请注意,您可以将 FIELDS LIKE 和 FIELDS EXCEPT 结合使用,但不能将字段列表与 LIKE 和 EXCEPT 子句结合使用。
MEMO | 指定字段列表包括一个或多个备注字段。 |
BLANK | 使用 BLANK 关键字可以创建一组空变量,或在数组或对象中填充空值。每个变量的名称、数据类型和大小都与其字段相同。如果包含字段列表,则会为字段列表中的每个字段创建一个变量。 |
TO <ArrayName> | 指定将记录内容复制到哪个数组。从第一个字段开始,SCATTER 按顺序将每个字段的内容复制到数组的每个元素中。 |
SCATTER 会自动创建一个新数组。数组元素的大小和数据类型与相应字段相同。 |
MEMVAR | 将数据分散到一组变量中,而不是数组中。SCATTER 为表中的每个字段创建一个变量,并用当前记录中相应字段的数据填充每个变量,同时为变量分配与其字段相同的名称、大小和类型。 |
NAME <ObjectName> | 创建一个对象,其属性名称与表中的字段相同。要将表中每个字段的值复制到每个对象属性中,请不要使用 BLANK 关键字。要使属性为空,请输入 BLANK 关键字 |
ADDITIVE | 更新由 ObjectName 指定的现有有效 Visual FoxPro 对象的属性值。在使用 BLANK 和 ADDITIVE 时,将忽略具有匹配字段名的现有属性值。 |