La Web del Programador: Comunidad de Programadores
 
    Pregunta:  16618 - VACIAR UN ARCHIVO MEMO DE UNA DBC
Autor:  JOSE ROLANDO QUINTERO PAZ
Hola amigos
Tengo un problema; hace poco descubri que cada vez que compilaba mi sistema a veces el tamaño aumentaba considerablemente y, por casualidad descubri que se trataba de los archivos memos tanto de las tablas como asi tambien de las base de datos. Para vaciar los de las tablas se usa PACK MEMO y se selecciona la tabla, sin embargo no se como hacerlo con el archivo memo de la base de datos cuyo archivo con extension DCT tiene casi 28 mb aunque la DBC esta vacia. Tambien tenia una DBC con un archivo memo de mas de 40 mb aunque tambien esta estaba vacia, mi solucion fue liberar todas las tablas y crear de nuevo la base de datos lo cual resulto con un sistema de casi 2mb, es decir logre reducirla casi 40mb. Pero, quiero hacerlo sin tener que crear todo de nuevo, ok?

  Respuesta:  JOSE ROLANDO QUINTERO PAZ
Hola amigos
quiero agradecerles por la ayuda y de paso comentarles como me fue. Les dire que hice lo siguiente para vaciar el archivo memo de la base de datos. Abri la misma y en la opcion Base de datos seleccione Limpiar base de datos y eso fue todo, quedo perfecto. Quiero decir que los archivos con extension dct en la ayuda estan catalogados como archivos memos de la base de datos como asi tambien los de extension CDX como archivos indices. Que,alguien diga qu no lo son realmente no tiene sentido puesto que ya bienen especificados de esa forma desde su origen.

  Respuesta:  Eloy Francisco Santillán Urbina
En el menu base datos selecciona Limpiar base de datos, si esto no te funciona (sucede), recuerda que casi todo VFP lo trata como tablas entonce abres el archivo ... USE archivo.dbc exclu ... y le das un pack y luego lo cierras... no vallas a cambiar ningun dato (por ahora hasta que conoscas bien la organizacion que sigue), eso es todo y tu archivos ya esta pequeño.

Hasta la proxima.

  Respuesta:  wences
Usa validate database , eso reconstruye la informacion de las bases de datos , dcx , dct ... eso que llamas un memo no es un memo , al igual que un dcx no es un indice , realmente lo que guardan son las relaciones entre tablas , validaciones , disparadores y demas cosas que afectan a las tablas ...

Y se van incrementando cada vez que añades cosas a la base de datos , pero no se borran o actualizas cuando quitas cosas , se queda con el tamaño que tenian , con lo cual no hacen mas que crecer ...por eso de vez en cuando en bueno pasar un Validate... por cierto , no hace falta usar el pack memo , con usar simplemente pack en una tabla (por supuesto abierta en exclusiva ) es suficiente , reconstruye los indices de la tabla y los memos ....

Espero te sirva...