UPDATE
 Actualiza el fichero actual de base de datos a partir de otro fichero de
 base de datos
------------------------------------------------------------------------------
 Sintaxis

     UPDATE FROM <xcAlias>    ON <expClave> [RANDOM]
        REPLACE <idCampo> WITH <exp>
        [, <idCampo2> WITH    <exp2>...]

 Argumentos

     FROM <xcAlias> especifica el alias del área de trabajo utilizada
     para actualizar registros en el área de trabajo actual. Este argumento
     puede especificarse como un nombre literal o como una expresión de
     caracteres entre paréntesis.

     ON <expClave> especifica la expresión que define los registros que
     se van a seleccionar en el área de trabajo remota.

     REPLACE <idCampo> especifica el campo en el área de trabajo actual
     que se va a sustituir con un nuevo valor.

     WITH <exp> especifica el valor por el que se va a sustituir el
     campo actual. Para referirse a cualquier campo contenido en el área de
     trabajo FROM, debe utilizarse el alias correcto.

     RANDOM permite que los registros en el fichero de base de datos
     remota estén en cualquier orden. Si se especifica esta opción, es
     necesario indexar antes el fichero de base de datos actual según
     <expClave>.

 Descripción

     UPDATE es un mandato de base de datos que sustituye campos del área de
     trabajo actual por valores de otro área de trabajo, basándose en la
     expresión clave especificada. UPDATE está diseñado para actualizar sólo
     los registros del área de trabajo actual basándose en una relación 'uno
     a uno' o 'uno a muchos' con el área de trabajo remota. Esto significa
     que UPDATE sólo puede actualizar los registros del área de trabajo
     actual que tengan valores clave exclusivos. Cuando hay más de un
     registro con el mismo caso de un valor clave, sólo se actualiza el
     primer registro que tenga ese valor clave. El área remota, no obstante,
     puede tener valores clave duplicados.

     Existen dos formas del mandato, dependiendo de si se ordenan o no los
     registros del área de trabajo remota mediante <expClave>. Si no se
     especifica RANDOM, el área de trabajo actual y la remota deben estar
     ordenado según <expClave>. Si se especifica, el área de trabajo actual
     debe estar indexada según <expClave>, pero los registros del área de
     trabajo remota pueden estar en cualquier orden.

     Para utilizar UPDATE en una red, el fichero actual de base de datos
     debe estar bloqueado con FLOCK() o abierto en modo exclusivo. El
     fichero de datos remoto puede abrirse en cualquier modalidad. Si desea
     más información, consulte el capítulo "Programación en Red" de la Guía
     de Programación y Utilidades.

 Notas

     ■ Registros borrados:  Si se ha establecido SET DELETED OFF, se
        procesan los registros borrados en ambos ficheros. Los registros del
        fichero que se está actualizando mantienen su estado de borrado y no
        se ven afectados por el estado de borrado de los registros del
        fichero remoto. No obstante, si se ha establecido SET DELETED ON, no
        se procesa ningún registro borrado de los ficheros.

 Ejemplos

      Este ejemplo actualiza la base de datos Cliente con las
        cantidades de las facturas pendientes:

        USE Facturas NEW
        USE Cliente INDEX Cliente NEW
        UPDATE FROM Facturas ON Ultimo;
           REPLACE Adeudado WITH Adeudado + Facturas->Cantidad RANDOM

 Ficheros   La biblioteca asociada es CLIPPER.LIB.

 To download this example - click here.

See Also: DBCREATEIND() INDEX JOIN REPLACE SET UNIQUE* SORT