Compartir a través de


APPEND FROM ARRAY (Comando)

Agrega a la tabla seleccionada actualmente un registro por cada fila de una matriz y llena cada registro con datos de la fila correspondiente de la matriz.

APPEND FROM ARRAY ArrayName [FOR lExpression] 
   [FIELDS FieldList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton]

Parámetros

  • ArrayName
    Especifica el nombre de la matriz que contiene los datos que se van a copiar a los nuevos registros. Se agregan nuevos registros a la tabla hasta que se hayan anexado todas las filas de la matriz.

  • FOR lExpression
    Especifica una condición para anexar registros desde la matriz. lExpression debe contener el nombre de un campo de destino en su expresión condicional.

    Antes de que una fila de la matriz se anexe a un registro de la tabla, se comprueba el elemento de matriz correspondiente al campo de destino especificado en lExpression para determinar si cumple la condición de lExpression. Si el elemento de matriz satisface la condición, se anexa un registro.

    Si el elemento de matriz no satisface la condición, la fila de matriz no se anexa y se comprueba la fila siguiente de la matriz para determinar si cumple la condición.

  • FIELDS FieldList
    Especifica que sólo los campos de FieldList se actualizan a partir de la matriz. El primer campo de la lista se actualiza con el contenido del primer elemento de la matriz, el segundo campo se actualiza con el segundo elemento, etcétera.

  • FIELDS LIKE Skeleton
    Especifica que los campos que coincidan con la estructura de campos Skeleton se actualizan a partir de la matriz.

  • FIELDS EXCEPT Skeleton
    Especifica que todos los campos excepto los que coincidan con la estructura de campos Skeleton se actualizan a partir de la matriz.

    La estructura de campos Skeleton admite caracteres comodín. Por ejemplo, para especificar que todos los campos que comiencen con las letras A y P se actualizan de la matriz, utilice lo siguiente:

    APPEND FROM ARRAY aMyArray FIELDS LIKE A*,P*
    

    Puede combinar la cláusula LIKE con la cláusula EXCEPT:

    APPEND FROM ARRAY aMyArray FIELDS LIKE A*,P* EXCEPT PARTNO*
    

Observaciones

Los campos memo y general se pasan por alto en APPEND FROM ARRAY. Cuando se abre una tabla para uso compartido, APPEND FROM ARRAY bloquea el encabezado de la tabla mientras se agregan los registros.

Si la matriz es de una dimensión, APPEND FROM ARRAY agregará un registro a la tabla. El contenido del primer elemento de la matriz llena el primer campo del nuevo registro agregado, el contenido del segundo elemento de la matriz llena el segundo campo del registro y así sucesivamente.

Si la matriz de una dimensión tiene más elementos que campos tenga la tabla, los elementos adicionales se pasarán por alto. Si la tabla tiene más campos que elementos la matriz, los campos adicionales se inicializarán con el valor vacío predeterminado. Éstos son los valores vacíos predeterminados para cada tipo de campo:

Tipo de campo Valor predeterminado
Character Espacios
Numérico 0
Currency 0
Flotante 0
Integer 0
Double 0
Fecha Fecha vacía (p. ej. CTOD(""))
DateTime Fecha y hora vacías (p. ej. CTOT(""))
Lógicas Falso (.F.)
Memo Vacío (sin contenido)

Si la matriz es de dos dimensiones, APPEND FROM ARRAY agregará un nuevo registro a la tabla por cada fila de la matriz. Por ejemplo, si la matriz tiene cuatro filas, se anexarán cuatro nuevos registros a la tabla.

El contenido de la primera columna de la matriz llena el primer campo de los nuevos registros anexados, la segunda columna de la matriz llena el segundo campo de los nuevos registros, etc. Por ejemplo, si la matriz tiene cuatro filas y tres columnas, los elementos de la primera columna de la matriz llenarán el primer campo de cada uno de los cuatro nuevos registros anexados a la tabla.

Si la matriz de dos dimensiones tiene más columnas que campos hay en la tabla, las columnas adicionales se pasarán por alto. Si la tabla tiene más campos que columnas hay en la matriz, los campos adicionales se inicializarán con valores vacíos.

APPEND FROM ARRAY puede llenar un campo incluso si el tipo de datos del elemento de matriz correspondiente no coincide con el tipo de datos del campo, siempre y cuando los datos del elemento de matriz sean compatibles con el tipo de datos del campo correspondiente. Si los datos no son compatibles, el campo se inicializa con un valor vacío.

Ejemplo

Este ejemplo crea una tabla y, a continuación, utiliza APPEND FROM ARRAY para agregar un registro a la nueva tabla.

LOCAL ARRAY aNewRec(3)

* Create the table
CREATE TABLE Test FREE  (Object C(10), Color C(16), SqFt n(6,2))
SCATTER TO aNewRec BLANK  && Create a new array from the table
aNewRec[1]="Box"         && Fill the the array
aNewRec[2]="Red"
aNewRec[3]=12.5
APPEND FROM ARRAY aNewRec   && Add record containing array contents
          && to the table

Vea también

APPEND | COPY TO ARRAY | DIMENSION | GATHER | SCATTER