Copiar Datos de una Tabla a Otra en FoxPro [SOLUCIONADO]

Explorar la transferencia de información entre tablas en FoxPro es fundamental para cualquier persona que se dedica a la manipulación de bases de datos. FoxPro, aunque no sea un lenguaje de programación tan popular en estos días, aún sigue siendo muy útil para ciertos propósitos, tales como la manipulación rápida de grandes volúmenes de datos.

En esta ocasión, el propósito principal es la duplicación de registros de una tabla a otra, lo que se puede hacer de varias maneras en FoxPro. Veamos algunas de estas tácticas.

Uso de APPEND FROM

El comando APPEND FROM es útil para copiar todo el contenido de una tabla (origen) a otra tabla (destino). El comando COPY TO puede ser usado para duplicar una tabla, pero la diferencia es que COPY TO creará una nueva tabla, mientras que APPEND FROM añadirá los registros a una tabla existente.

USE Clients Shared
APPEND FROM Suppliers FOR Region = 'North'

En el código anterior, estamos seleccionando la tabla ‘Clients’ y luego anexando todos los registros de la tabla ‘Suppliers’ que tienen ‘North’ en el campo ‘Region’.

Uso de INSERT INTO SELECT

Otra estrategia para transferir datos entre tablas en FoxPro es utilizar la sentencia INSERT INTO SELECT. Este método es especialmente atractivo cuando necesitas más control sobre qué registros se copian.

INSERT INTO Clients (ID, Name, City)
SELECT Suppliers.ID, Suppliers.Name, Suppliers.City FROM Suppliers 
WHERE Suppliers.Region = 'South'

Aquí, se seleccionan registros de la tabla ‘Suppliers’ donde ‘Region’ es ‘South’, y luego se insertan en la tabla ‘Clients’. Se copian sólo los campos ‘ID’, ‘Name’, y ‘City’.

Uso de SCATTER y GATHER

Este sistema involucra los comandos SCATTER y GATHER. Ambos comandos son útiles para trabajar con registros individuales. Por ejemplo, puedes copiar un registro de una tabla a otra con SCATTER NAME y GATHER NAME.

USE Suppliers Shared 
SCATTER NAME oRec 
USE Clients Shared 
APPEND BLANK 
GATHER NAME oRec

El comando SCATTER guarda el registro actual en un objeto (oRec en este ejemplo). Luego, usamos la tabla ‘Clients’, añadimos un registro en blanco con APPEND BLANK, y finalmente usamos el comando GATHER para mover los datos desde el objeto al registro blanco recién creado.

Para transferir más de un registro, podemos implementar un bucle DO WHILE que moverá los registros uno por uno.

USE Suppliers Shared 
DO WHILE .NOT. EOF()
   SCATTER NAME oRec 
   USE Clients Shared 
   APPEND BLANK 
   GATHER NAME oRec
   USE Suppliers Shared 
   SKIP 
ENDDO

Este bloque de código continuará hasta que alcance el final de la tabla ‘Suppliers’.

Como conclusión, transpolar registos en FoxPro es un proceso que aunque pueda parecer complicado, en realidad no lo es si se entiende la lógica de sus comandos. En el futuro, no dudes en referirte a este post siempre que necesites recordar cómo manejar y transpolar datos de una tabla a otra en FoxPro.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad