GATHER

From Lianjapedia
Jump to: navigation, search

Purpose

Replace fields with elements from an array or series of memory variables

Syntax

GATHER FROM <array> | MEMVAR | NAME <OBJECT>

[FIELDS <field list> | FIELDS LIKE <skeleton> | FIELDS EXCEPT <skeleton>]

[MEMO]

See Also

ADEL(), ADIR(), AFIELDS(), AFILL(), AINS(), ALEN(), ARRAY(), ASCAN(), ASORT(), COPY TO ARRAY, IN_ARRAY(), IS_ARRAY(), LOCAL, OBJECT(), PRIVATE, PUBLIC, SCATTER

Description

The GATHER command replaces fields in the current record with elements from the specified array <array>, properties from the specified object <object> or, if the MEMVAR keyword is used, from a series of memory variables with the same names as the fields. If the current table is shared, then automatic record locking is performed for the update operation. The data types of the array elements, object properties or memory variables and corresponding fields must be compatible. If the array has fewer elements than the number of fields in the record, then fields are modified only up to the number of elements specified. If no matching object property or memory variable is found for a field, the field is unchanged.

FIELDS <field list> | FIELDS LIKE <skeleton> | FIELDS EXCEPT <skeleton>

The optional FIELDS <field list> can be used to restrict the fields updated to those in the comma separated <field list> or those matching the LIKE <skeleton> or those not matching the EXCEPT <skeleton>.

MEMO

By default, memo fields are ignored by the GATHER command. If the MEMO keyword is specified, memo fields will be included.

If SET LOCKTYPE TO OPTIMISTIC is active, an attempt to use the GATHER command on a record that has been modified since it was last read will generate an error.

NOTE: 'FROM' should not be included in the MEMVAR or NAME clauses.

Example

open database southwind
use example
goto 45
scatter fields last_name, first_name to table_1
append blank
gather from table_1 fields last_name, first_name 
use
 
dshipper = object("shipperid" => 4, "companyname" => "Acme Inc.",;
 "phone" => "(503) 1234-566")
use shippers
append blank
gather name dshipper