GATHER (Comando)
Sustituye los datos del registro actual de la tabla seleccionada actualmente por datos de una matriz, un conjunto de variables o un objeto.
GATHER FROM ArrayName | MEMVAR | NAME ObjectName
[FIELDS FieldList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton]
[MEMO]
Parámetros
FROM ArrayName
Especifica la matriz cuyos datos reemplazan los datos del registro actual. El contenido de los elementos de la matriz, comenzando con el primer elemento, reemplaza el contenido de los campos correspondientes del registro. El contenido del primer elemento de la matriz reemplaza al primer campo del registro; el contenido del segundo elemento de la matriz reemplaza al segundo campo y así sucesivamente.Si la matriz tiene menos elementos que el número de campos de la tabla, se pasan por alto los campos adicionales. Si la matriz tiene más elementos que el número de campos de la tabla, se pasará por alto el resto de elementos de la matriz.
MEMVAR
Especifica las variables o la matriz desde las que se copian datos al registro actual. Los datos se transfieren desde la variable hasta el campo que tenga el mismo nombre que dicha variable. El contenido de un campo no se sustituye en caso de que no exista ninguna variable con el mismo nombre que el campo.Sugerencia Puede crear variables con los mismos nombres que los campos incluyendo MEMVAR o BLANK en SCATTER.
NAME ObjectName
Especifica un objeto cuyas propiedades tienen los mismos nombres que los campos de la tabla. El contenido de cada campo se sustituye por el valor de la propiedad que tenga los mismos nombres que los campos. El contenido de un campo no se sustituye si no existe ninguna propiedad con su mismo nombre.FIELDS FieldList
Especifica los campos cuyo contenido se sustituye por el contenido de los elementos de la matriz o las variables. Solamente se sustituirá el contenido del campo especificado con FieldList.FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton
Puede reemplazar selectivamente campos con el contenido de elementos de matriz o variables si incluye la cláusula LIKE o EXCEPT, o ambas. Si incluye LIKE Skeleton, Visual FoxPro reemplazará los campos que coincidan con Skeleton. Si incluye EXCEPT Skeleton, reemplazará todos los campos excepto los que coincidan con Skeleton.Skeleton acepta caracteres comodín (* y ?). Por ejemplo, para reemplazar todos los campos que empiecen por las letras A y P, use:
GATHER FROM gamyarray FIELDS LIKE A*,P*
MEMO
Especifica que el contenido de los campos memo se sustituye por el contenido de los elementos de la matriz o de las variables. Si omite MEMO, los campos memo se saltarán cuando GATHER reemplace el contenido de los campos con el contenido de una matriz o de variables. Los campos de tipo General y Picture se pasan por alto siempre en GATHER, incluso si se incluye la palabra clave MEMO.
Ejemplo
En este ejemplo se utiliza GATHER para copiar datos a un nuevo registro de una tabla. Una vez creada la tabla Test
, se utiliza SCATTER para crear un conjunto de variables basado en los campos de la tabla. Después se asigna un valor a cada campo y se agrega un nuevo registro en blanco a la tabla.
CREATE TABLE Test FREE ;
(Object C(10), Color C(16), SqFt n(6,2))
SCATTER MEMVAR BLANK
m.Object="Box"
m.Color="Red"
m.SqFt=12.5
APPEND BLANK
GATHER MEMVAR
BROWSE
En el ejemplo siguiente se utiliza GATHER con la cláusula NAME para copiar datos a un registro nuevo de la tabla. Una vez creada la tabla Test
, se utiliza SCATTER para crear un objeto con propiedades basadas en los campos de la tabla. Después se asignan valores a las propiedades del objeto y se agrega un nuevo registro en blanco a la tabla.
CREATE TABLE Test FREE ;
(Object C(10), Color C(16), SqFt n(6,2))
SCATTER NAME oTest BLANK
oTest.Object="Box"
oTest.Color="Red"
oTest.SqFt=12.5
APPEND BLANK
GATHER NAME oTest
RELEASE oTest
BROWSE