REPLACE
 Asigna nuevos valores a variables de campo
------------------------------------------------------------------------------
 Sintaxis

     REPLACE <idCampo> WITH <exp>
        [, <idCampo2> WITH <exp2>...]
        [<ámbito>] [WHILE <lCondición>] [FOR <lCondición>]

 Argumentos

     <idCampo> es el nombre de la variable de campo a la que se va a
     asignar un nuevo valor. Si <idCampo> va precedido de un alias, la
     asignación tiene lugar en el área de trabajo designada.

     WITH <exp> define el valor que se va a asignar a <idCampo>.

     <ámbito> es la sección del fichero actual de base de datos en que
     se va a realizar la sustitución. El valor por defecto es el registro
     actual o NEXT 1. Si se especifica una condición, el valor por defecto
     es todos los registros del área de trabajo actual (ALL).

     WHILE <lCondición> especifica un grupo de registros que cumplen una
     condición, desde el registro actual hasta que la condición deje de
     cumplirse.

     FOR <lCondición> especifica el grupo condicional de registros que
     se va a sustituir en el ámbito dado.

 Descripción

     REPLACE es un mandato de base de datos que asigna nuevos valores a una
     o más variables de campo del registro actual, en las áreas de trabajo
     especificadas. Las variables de campo de destino pueden ser de tipo
     carácter, fecha, lógico, memo o numérico. REPLACE realiza la misma
     función que el operador de asignación (:=), excepto en que supone que
     una referencia sin alias se aplica a una variable de campo. Esto
     significa que es posible asignar nuevos valores a variables de campo
     mediante asignaciones, siempre que las referencias a las variables
     vayan precedidas de un alias (el alias FIELD) o se declaren mediante
     FIELD.

     Si no se especifica un ámbito o condición, el ámbito por defecto es el
     registro actual. Si se especifica, la operación de sustitución se
     realiza en todos los registros que cumplan la condición o que se
     encuentren en ese ámbito.

     ¡Advertencia! Cuando se sustituye un campo clave, el índice se
     actualiza y cambia la posición relativa del puntero en el índice. Esto
     significa que si se utiliza un ámbito o condición para sustituir un
     campo clave pueden producirse errores. Para actualizar un campo clave,
     ejecute SET ORDER TO 0 antes de REPLACE. Esto asegura que el puntero
     se desplace en el orden natural. Sin embargo, si se sustituye el campo
     clave se actualizan todos los índices abiertos.

     En un entorno de red, para sustituir el registro actual es necesario
     bloquearlo antes con la función RLOCK(). La sustitución con un ámbito
     y/o condición requiere un uso exclusivo del fichero o bloquearlo antes
     con FLOCK(). Si se sustituye un campo de otra área de trabajo
     especificando su alias, ese registro debe bloquearse también con una
     función RLOCK(). Si desea más información, consulte el capítulo
     "Programación en Red" de la Guía de Programación y Utilidades.

 Ejemplos

      Este ejemplo muestra la utilización básica de REPLACE:

        USE Cliente NEW
        APPEND BLANK
        USE Facturas NEW
        APPEND BLANK
        //
        REPLACE Gastos WITH Cliente->Recargo * Coste,;
           Idcli WITH Cliente->Idcli,;
           Cliente->FechaTran WITH DATE()

      Este ejemplo utiliza sentencias de asignación en vez del
        mandato REPLACE:

        FIELD->Gastos := Cliente->Recargo * FIELD->Coste
        FIELD->Idcli := Cliente->Idcli
        Cliente->FechaTran := DATE()

 Ficheros   La biblioteca asociada es CLIPPER.LIB.

 To download this example - click here.

See Also: COMMIT FLOCK() RLOCK()