FoxPro/Visual FoxPro - alexcoinc

 
Vista:

alexcoinc

Publicado por alexcoinc (450 intervenciones) el 23/07/2007 14:35:10
PARA HACER MANTENIMIENTO A MI BASE DE DATOS COMPUESTO POR UNAS TABLAS
Recibí la sugerencia de observar el programa GENDBC que viene con el
VFP.

Este programa si no estoy mal, genera las tablas e indices de una base
de datos totalmente nuevas (vacias).... eso está muy bien!!

PERO, Como hago para realizar mantenimiento a las tablas de mi base de datos sin
tener que borrar los datos ya existentes, para que se reconstruyan los indices
que posiblemente estan dañados; y para hacer un PACK, por ejemplo o un ZAP.

PERO TODO ESTO EN TIEMPO DE EJECUCION !!!!!

A sabiendas (eso si), que ningún usuario diferente al administrador del
sistema este activo en la aplicación.

Si me toca cerrar la bases de datos con close databases, tendre problemas mas
adelante l volverla abrir con los formularios que ya estaban funcionando; bueno
innumerables inquietudes.... COMO ES LA MEJOR MANERA ??

EN OTRAS PALABRAS... UN BUEN MANTENIMIENTO (que se hará si se va la energía eléctrica,
si se cierra la aplicación rudamente, por algún otro motivo)

Gracias por su ayuda

[email protected]
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

RE:alexcoinc

Publicado por Plinio (7841 intervenciones) el 23/07/2007 15:31:57
1- Trata de que los titulos de tus mensajes dejen de llamarse "Alexcoinc"

2- Yo tengo una rutina que luego de generar las tablas que estan en el GENDBC copia el contenido de las tablas viejas a las nuevas usando APPEND FROM y luego reemplazo esas tablas viejas por las nuevas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:alexcoinc

Publicado por Sobre el Mantenimiento (450 intervenciones) el 23/07/2007 17:20:21
1- Respecto a los titulos de los mensajes, lo corregiré.. Gracias por la sugerencia !

2- Debo presumir que el GENDBC, sirve si y solo si estoy genando tablas nuevas ?

3- Lo que me planteas Plinio, (LO DE TU RUTINA) se puede hacer teniendo el aplicativo en ejecución ?

4- Supongo que lo del copy para reemplazar las tablas viejas, es teniendo la base de datos cerrada ?

MI INQUIETUD AL RESPECTO ES QUE SI CIERRO LA BASE DE DATOS, HACER EL COPY Y LUEGO VOLVERLA A ABRIR, NO IMPLICA NINGUN CAMBIO EN EL ENTORNO DE DATOS DE ALGUN FORMULARIO ? Y SI ESTOY EJECUTANDO ESTAS RUTINAS DESDE UN FORMULARIO QUE TIENE UN ENTORNO DE DATOS CON TABLAS DEFINIDAS CON ANTERIORIDAD, QUE PASA CUANDO CIERRE Y ABRA LA BD. NO SE ALTERA ??

Por favor guíame en el proceso un poquito mas !!

Te lo agradezco mucho, pues de verdad lo necesito !!


[email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:alexcoinc

Publicado por Plinio (7841 intervenciones) el 23/07/2007 17:27:34
- Los objectivos de mi utilitarios con GENDBC son:
a) Si tengo que actualizar el sistema y he hecho cambios en la estructura de datos (tablas nuevas, campos nuevos, modificaciones, indices nuevos, etc)

2) si hay corrupcion de datos en las tablas, copiando el contenido a nuevas tablas resuelvo todo de paso.

- Tengo la rutina en un pequeño software utlitario que uso aparte de la aplicacion
- No se puede tener la base datos o las tablas abiertas. Lo recomentable es salir de la aplicacion.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:alexcoinc

Publicado por Ernesto Hernandez (4623 intervenciones) el 24/07/2007 05:36:23
El simple proceso de abrir tus tablas te puede ayudar en ciertos casos a determinar si tiene algún problema o está corrupta.

Aquí tiene como puedes realizar este proceso:

nTablas = Adir(aMisTablas,"*.dbf")

On Error ?aMisTablas[x,1] + " tiene errores"

For x = 1 To nTablas
Use aMisTablas[x,1] Shared
EndFor

Use
On Error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar