FOXBASE+中SCATTER及GATHER语句的使用

Author: 广西 吴国华 Date: 1995-03-10

        1.APPEND BLAN
        REPLACE...
        2.APPEND FROM <追加库名>[FOR<条件>]
        但这两种方法又各自有一定的缺陷,方法1在数据库的字段较多时,其REPLACE语句就显得臃长,而且当字段修改后,也必须修改相应的REPLACE语句;在方法2中,因为APPEND FROM语句是对追加数据库的整个库进行操作的,当追加的记录数较多时,此命令就要花费较多的时间。另外,若在程序设计中经常要作某种有条件的单条记录的追加操作时,用此种方法就更不足取了。在FOXBASE+中提供了SCATTER及GATHER这两条语句,使用这两条语句能较好的解决上述两方法中的不足。这两条语句的语法如下:
        格式:SCATTER [FIELDS <当前数据库字段名表>]TO <数组名>
        功能:将当前数据库的当前记录的数据送入内存变量数组。传送时,从第一个字段开始依次向数组中相应次序的单元传送,该单元的数据类型就由该字段决定。如果数组的单元个数比字段少,则自动建立(DIMENSION)一个新数组来接纳传送的数据,新数组的单元个数就等于字段数。
        格式:GATHER FROM <数组名> [FIELDS<字段名表>]
        功能:将内存变量数组的数据传送到当前工作区中当前数据库记录中。
        从上述SCATTER及GATHER语句的功能可知,在追加记录时,只需找到需追加的记录,用SCATTER语句将其记录内容传送给数组,然后回到被追加的数据库区,用GATHER语句将数组内容传送给记录即可。