¿Cómo actualizar la Base de Datos VFP de 1 cliente?

Hola
Tengo una aplicación desarrollada en Visual FoxPro 7.0 que está corriendo desde un ejecutable en una pequeña empresa hace algunos años.
Me solicitaron realizar algunas modificaciones por lo que tuve que crear nuevas tablas y relaciones en la base de datos (en el proyecto que está en mi PC de trabajo).
Hasta ahora los cambios que me pedían no alteraban la estructura de la base de datos por lo que simplemente modificaba los programas y les pasaba el nuevo ejecutable.
Pero ahora si hice cambios en la base de datos, ¿Cómo hago para pasarle la base de datos actualizada con las nuevas tablas y desencadenantes?
He probado hacer un programita de upgrade que crea las tablas y las relaciones pero no sé cómo crear los desencadenantes.
En resumen lo que necesito es actualizar la base de datos de mi cliente.
Desde ya les agradezco mucho cualquier dato que me puedan aportar.
Quedo a la espera de una respuesta. Es Urgente.
Muchas Gracias.
{"lat":-26.8253345907652,"lng":-65.2189207077026}

1 Respuesta

Respuesta
1
Considero posible lo siguiente, has un programa que coja la base dae datos actual y genere los scrips en SQl, y al montar la base de datos nueva ejecuta esos script y actualice las bass de datos.
Pruébalo
Hola, muchas gracias por tu respuesta.
No estoy seguro de haber expresado mi pregunta correctamente, o quizás no interpreto adecuadamente tu respuesta.
Yo programo en una PC que no está conectada con el servidor de la empresa en la cual corre mi sistema.
El servidor de la empresa tiene una copia idéntica de la base de datos (nativa de VFP: .dbc, .dct, .dcx)y no tiene instalado el VFP, por lo que los upgrades o actualizaciones debo realizarlas mediante archivos ejecutables.
En la última modificación tuve que crear nuevas tablas y definir nuevas "relaciones de Integridad referencial" en la DB de mi PC.
Ahora debo actualizar la DB de mi cliente !
El problema con el método que me propones es que sólo he podido crear las nuevas tablas y relaciones en la DB de mi cliente, pero no sé cómo hacer para actualizar el código IR de la DB.
Es decir no encuentro la forma de programar el comportamiento de los "desencadenates" de las nuevas relaciones entre tablas.
Como las relaciones y sus desenacadenantes están debinidos en los archivos dbc y dcx, he probado ejecutar el Script, que crea las tablas y relaciones, y luego reemplazar los archivos .dbc, .dct y .dcx en el servidor de mi cliente y parece que funciona bien.
¿Es esto correcto?
Le pido disculpas si no he sido suficientemente claro. Es la primera vez que necesito acudir a Uds. en busca de ayuda.
Desde ya le agradezco mucho su atención y gentileza.
Agradeceré much si puede considerar lo que le acabo de exponer y responderme nuevamente.
Muchas gracias.
Saludos cordiales.
Perdón por la insistencia.
Lo ideal sería copiar el código IR de la DB de mi PC con el comando Modify Procedure y desde el ejecutable del Upgrade utilizar el mismo comando sobre la DB de destino para reemplazar el código, pero ese comando no se encuentra disponible en las compilaciones (exe).
Gracias.
no me hice entender, vamos a llamar BC la base de datos existente y que queda desacutalizada y BN la nueva estructrua ya creada, entonces lo que vas a hacer es en BC ahcer los scrips en sql de todas las tablas,
ejemplo tabla1 que tuviera tres registros en BC
insert into tabla1 (campo1, campo2) values (infcampo1Reg1enBC, infcampo2Reg1enBC)
insert into tabla1 (campo1, campo2) values (infcampo1Reg2enBC, infcampo2Reg2enBC)
insert into tabla1 (campo1, campo2) values (infcampo1Reg3enBC, infcampo2Reg3enBC)
Estas tres sql sería mi script para actualizar tabla1 en BN
y así debes hacerlo con todas las tablas, al estar listos todos los scrips montas al BN y los ejecutas, en ese momento lo que tenia tabla1 en BC pasa a tabla1 en BN y así con todas las tablas y tu BN queda actualizada con IR, campos y tablas nuevas.
Obviamente el proceso de generación de scrips debe ser automático, pero vale la pena hacerlo pues muy seguramente se va a seguir utilizando.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas