FoxPro/Visual FoxPro - Copiar datos de una base a otra

 
Vista:

Copiar datos de una base a otra

Publicado por Sebastian (31 intervenciones) el 25/01/2006 19:50:12
Estimados amigos del foro:
Tengo la necesidad de migrar datos de una base de datos a otra cuando hago cambios en la estructura de la base de datos, y tengo el siguiente problema, el proceso se hace bien, se selecciona donde estan los datos para copiar a la nueva base de datos, pero el problema es que solo se me copian los datos en la primer tabla... luego anque el bucle avanza bien, se me van copiando los datos de todas las tablas de origen en la primera de destino. Les pongo aqui el codigo para ver si alguien me puede decir que es lo que hago mal.

Muchas gracias...a todos

lnDBFs = ADIR(laDBF,GETDIR() + '*.DBF') && Traigo las dbf¡s

cPath=GETDIR() && Guardo el path de la base de datos de origen

*- Si existen archivos DBF, lo inserta en un cursor "csrDBFs"

IF lnDBFs > 0 THEN

CREATE CURSOR csrDBFs (cNombre C(60))

FOR i = 1 to lnDBFs

INSERT INTO csrDBFs VALUES (laDBF(i,1))

NEXT

ELSE

MessageBox("No existen archivos DBF para procesar", 16, "No se hallaron archivos .DBF")

RETURN

ENDIF

*------------------------------------------------------------------------------------------*

* Abro la base de datos a actualizar *

SET PATH TO &cPath

OPEN DATABASE data.dbc EXCLUSIVE

* Abro la base de datos con los ultimos datos *

SET PATH TO 'C:\DMT\DATA_LIB'

OPEN DATABASE data.dbc EXCLUSIVE



SELECT csrDBFs && Selecciono el cursor

GO top && Voy al Inicio

DO WHILE !EOF()

WAIT WINDOW '' timeout 0.1

thisform.lblTabla.Visible=.T.

thisform.lblTabla.CAPTION=csrDBFs.cNombre

cTable=ALLTRIM(csrDBFs.cNombre) && Nombre de la tabla actual

cAllPath=(cpath+ctable)

SET PATH TO &cPath

USE (cAllPath) IN 0

SELECT (cpath+ctable)



USE 'C:\DMT\DATA_LIB\'+ctable IN 0

SELECT 'C:\DMT\DATA_LIB\'+ctable

APPEND FROM &ctable



SELECT csrDBFs

SKIP

LOOP

ENDDO

MESSAGEBOX('Trabajo Terminado','Traspaso de Aplicacion',64)

CLOSE DATABASES

CLOSE TABLES

CLOSE ALL

thisform.Release
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder