Updates data in fields with values from a variable array.
REPLACE FROM ARRAY ArrayName [FIELDS FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2] [NOOPTIMIZE]
- Specifies the name of the array whose values replace the field data.
- FIELDS FieldList
- Specifies that only the fields in FieldList be replaced by the contents of the array. Fields in unselected work areas must be prefaced with their table alias.
- Specifies a range of records to replace with the contents of the array. The default scope for REPLACE FROM ARRAY is the current record (NEXT 1). Only the records that fall within the range are replaced. Replacement occurs until the end of the scope or the end of the array is reached. The scope clauses are: ALL, NEXT nRecords, RECORD nRecordNumber, and REST. For more information on scope clauses, see Scope Clauses.
- FOR lExpression1
- Specifies that fields be replaced only in records for which lExpression1 evaluates to true (.T.). Including FOR makes it possible for you to conditionally replace records, filtering out those you don't want. Replacement occurs in each record for which lExpression1 is true (.T.), or until the end of the array is reached. Rushmore Query Optimization optimizes REPLACE FROM ARRAY FOR if lExpression1 is an optimizable expression. For best performance, use an optimizable expression in the FOR clause. For more information, see SET OPTIMIZE Command and Using Rushmore Query Optimization to Speed Data Access.
- WHILE lExpression2
- Specifies a condition whereby fields in records are replaced by the contents of the array for as long as the logical expression lExpression2 evaluates to true (.T.).
- Prevents Rushmore optimization. For more information, see SET OPTIMIZE Command and Using Rushmore Query Optimization to Speed Data Access.
Memo and general fields are ignored in REPLACE FROM ARRAY. To import data into these fields, use GATHER and APPEND GENERAL.
Starting with the first element, the elements of the array replace the corresponding fields of the record. The first array element replaces the first field of the record, the second array element replaces the second field, and so on.
If the array has fewer elements than the table has fields, the additional fields are ignored. If the array has more elements than the table has fields, the additional array elements are ignored.
|No replacement occurs if the record pointer is at the end of the file in the current work area and you specify a field in another work area.|