| xHarbour Reference Documentation > Command Reference |  | 
|  |  |  | 
Assigns values to field variables.
REPLACE <fieldName1> WITH <expression1> ;
     [, <fieldNameN> WITH <expressionN>] ;
  [NEXT <nCount>|ALL] ;
 [WHILE <lWhileCondition>] ;
   [FOR <lForCondition>]
The REPLACE command assigns values to one or more field variables. The field variables are identified with their symbolic field names and are searched in the current work area, unless being prefixed with the alias name of a different work area.
The scope of the REPLACE command is the current record when no further condition of scope is specified. otherwise, all records matching scope and condition are processed.
When a database is open in SHARED mode, the current record must be locked with the RLock() function before REPLACE may be called. Failure to do so generates a runtime error. If multiple records should be processed, the entire file must be locked using FLock(), or the file must be open in EXCLUSIVE mode. This applies to files open in all work areas praticipating in the assignment operation.
Note: When field variables that are part of an index expression of open indexes are changed, the corresponding index is automatically updated, unless the index is created with the CUSTOM attribute. In the latter case a custom index must be updated manually.
It is recommended to SET ORDER TO 0 before changing field variables that are part of index expressions. This makes sure that the relative record pointer position does not change automatically while indexes are updated.
| See also: | COMMIT, DbRlock(), FLock(), RLock() | 
| Category: | Database commands | 
// The example demonstrates how to assigne values to a database
// open in SHARED mode.
   PROCEDURE Main
      LOCAL cFirstname, cLastname
      USE Customer INDEX CustA, CustB ALIAS Cust NEW SHARED
      cFirstname := Cust->Firstname
      cLastname  := Cust->Lastname
      CLS
      @ 5,1 SAY "First name:" GET cFirstname
      @ 6,1 SAY "Last name :" GET cLastname
      READ
      IF .NOT. Empty( cFirstname + cLastname ) .AND. RLock()
         REPLACE Firstname WITH cFirstname, ;
                 Lastname  WITH cLastname
         COMMIT
         UNLOCK
      ENDIF
      CLOSE Cust
   RETURN
http://www.xHarbour.com