Migrar información tabla visual Fox Pro 9.0

He generado una aplicación diseñada en foxpro 9.0 que utiliza la base de datos .dbf de fox pro 9.0, sin embargo esta tabla ya tiene algunos registro y me toca añadirle otro campo a la tabla,

¿Cómo hago para migrar la información de la tabla?.

Es posible generar los scripts para hacer la inserción teniendo en cuenta que mi tabla se llama Infor y los campos son los siguientes:

fecha= date(8)

horasa = character(10)

horase = character (10)

horasd= character (10)

sop = character (10)

descripción =memo Binary (4)

observaciones = memo Binary (4)

estado = character (10)

reg = integer (Autoincrement) 4

Mib = nuevo campo a agregar

MIb es el nuevo acampo que tenco que agregar a la tabla infor.

¿Cómo puedo migrar la información?

2 Respuestas

Respuesta
1

Espero poder ayudarte con tu duda. Antes que nada... ¿vas a migrar la información de una tabla a otra (con un nuevo campo) o solo agregar un nuevo campo a la tabla existente en tu aplicación? No esta muy claro eso, disculpa si no comprendo... pero es que mencionas "migrar la información de la tabla" y después "agregar un campo nuevo". Aclarame esto para poder ayudarte mejor.

Bien... si lo que necesitas es solo agregar otro campo, ni mas ni menos, a la tabla, basta con abrir la tabla con el diseñador de tablas desde el administrador de proyectos. Ojo... ¿tenes el proyecto verdad? ¿O es solo un .exe? Si tenes el proyecto del ejecutable (en caso que este creado como .exe), podes abrir toda la aplicación en modo de diseño y hacer los cambios. A mi criterio, creo que es la única forma de hacerlo...! Cuando haces los cambios, guardas y volvés a generar el .exe de la aplicación... eso yo lo he echo muchas veces, cambiando no solo la estructura de las tablas, sino rutinas, procedimientos, clases... etc.

Si abrís la aplicación en modo de diseño, ve al administrador del proyecto, ahí escoges la pestaña data y podes ver las tablas (libres o dentro de un fichero de base de datos). Escoge la tabla infor y le das Modificar. Ahí agregas el campo y sus características y propiedades. Luego, guardas los cambios. En el administrador de proyectos escoges "Build", que esta a la derecha, y re generas el .exe del proyecto...!

Bien... si no es lo que te resuelve, avisame para poder ayudartte.

Buenas tardes.

estos son los pasos que voy a realizar

Primero voy al diseñador y a mi tabla Infor le agrego un campo nuevo llamado Mib

ahora lo que necesito es saber como migrar los datos teniendo en cuenta que ya he usado la aplicación y he generado varios registros en la tabla la cual no tenia el campo Mib,

he de aclarar que la tabla que uso para la aplicación esta en otra ruta a la que use para el diseño, por lo cual la tabla del diseño no tiene datos y la tabla de la aplicación tienes los datos pero me toca migrarlos y no se como por la cuestión del campo.

seria posible generar los scipts teniendo en cuneta los datos que te envíe al principio,

o lo mas fácil seria abrir la tabla que uso en mi aplicación en el diseño y agregarle el campo

o como hago ??

A mi criterio, seria mas fácil abrir la tabla en modo de diseño, agregar el campo y luego 'migrar' los registros.

Si vas a pasar registros de una tabla a otra, para que ya te queden en uso en tu aplicación, basta con hacer un escaneo a la tabla anterior (la que contiene los datos) y por cada registros, ir insertando en la tabla nueva los datos. Ejemplifiquemos para que veas de forma sencilla como seria... luego podrás adecuarlo a tus necesidades, recuerda siempre que se va de lo sencillo a lo complejo jejeje: Tengo la tabla1 con los campos: código, nombre y dirección. Pero "creo una nueva tabla" llamada tabla2, la cual tiene los mismos campos anteriores +1 campo nuevo: código, nombre, dirección y teléfono.

Supongamos que en la "tabla1" tengo 100 registros y quiero pasarlos a mi nueva tabla, entonces procedemos así:

**--

SELECT tabla1

GO TOP

*--Iniciamos escaneo de registros

SCAN

SELECT tabla2

**--

INSERT INTO tabla2(código, nombre, dirección) VALUES(tabla1.código, tabla1.nombre, tabla1.dirección)

**--

TABLEUPDATE(.F.)

ENDSCAN

**--//

Con esto, los datos de la tabla 1 pasan a la tabla 2.

Ahora, supongamos un segundo escenario. Tenes la tabla1 con los campos: código, nombre y dirección y agregas un nuevo campo (en el diseñador de tablas) llamado "teléfono". En la tabla tenes 100 registros de personas pero solo por los primeros 3 campos... te falta 'migrar' o completar los teléfonos, que es el nuevo campo. Entonces para eso, tendrás que insertar (la palabra técnicamente correcta es reemplazar) cada teléfono por cada registro. Para eso, usas:

SELECT tabla1

TABLEREVERT(.F.)

**--Reemplazamos

REPLACE tabla1.teléfono WITH valordeldato

**---

TABLEUPDATE(.F.)

Y así sucesivamente, si es que lo haces por programación. Pero... hay otra forma... después que insertas el nuevo campo, selecciona la tabla (en el admin. De proyectos) y dale "Browse" y ahí podes insertar manualmente los registros en el campo... a como si fueras en una hoja de excel.

Bien... esas son solo algunas posibilidades y escenarios e lo que podrías hacer, según entiendo tu explicación. Avisame si es lo que buscabas, si no... decime para que veamos como resolverlo por correo y así podes enviarme la tabla o la modificación y ayudarte mas directamente... comprendiendo mejor lo que necesitas.

Avisame cualquier cosa... un abrazo! Ravenn :D :D :D

Muchas Gracias Por tu respuesta,

Opte por abrir la tabla del aplicativo en modo diseño y agregarle el campo

con esto no tuve que hacer ninguna migración de datos.

gracias por tu colaboracion

Respuesta
1

Mi sugerencia es que realices una copia de la tabla completa, no se la instrucción exacta.

Tiene años que no manejo dbfs. O simplemente copiar el dbf con otro nombre, editar la estructura y después hacer el select para insertar los datos de la copia de respaldo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas