| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
sp Invitado
|
Publicado: Lun 12 Ene, 2004 7:57 am Asunto: tamaño de los archivos de las tablas paradox |
|
|
Hola
Tengo una base de datos paradox, con tres tablas, cuando ingreso datos a las
tablas veo que los archivos .MB tienen un tamaño considerable.
Pero cuando elimino algunos registros de la base de datos, veo que los
archivos aun poseen el mismo tamaño, es mas, aun cuando elimino todos los
registro el tamaño sigue igual.
Cuando elimino los registros lo hago mediante un Query con la siguiente
sentencia
delete
from tabla;
No se si hay algo malo o que es.
Alguien puede darme alguna explicacion
Gracias |
|
| Volver arriba |
|
 |
Marky Master

Registrado: 28 Dic 2002Mensajes: 251Ubicación: Las Rozas - Madrid (España)
|
Publicado: Lun 12 Ene, 2004 10:36 am Asunto: |
|
|
Hola!
Haz un "pack" de las tablas y verás como disminuye el tamaño del archivo. Se debe a que los registros eliminados siguen ocupando espacio. No me preguntes porque  |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Lun 12 Ene, 2004 11:46 am Asunto: |
|
|
Algo que tambien a funcionado y te permite mantener un standar en cuanto al tamaño, es que fisicamente, no los elimines, si no ponles una marca es decir... que en campo clave le asignaras un valor null (0xFF), para que tu tabla aun cuando elimines, estos registros solo se pongan en blanco, asi, cuando insertes otro registro en lugar de ampliar tu tabla, buscas el valor null (0xFF), y editas este registro asi, tu tabla no tendra problemas, recuerda que el orden te lo da el indice y por el campo key...
saludos... _________________
 |
|
| Volver arriba |
|
 |
ikis Master


Registrado: 28 Dic 2002Mensajes: 703Ubicación: Madrid, España
|
Publicado: Lun 12 Ene, 2004 4:01 pm Asunto: |
|
|
| Si quieres hacer un pack poc codigo, busca en el sitio de Borland, la utilidad DBUtil q viene con fuentes. |
|
| Volver arriba |
|
 |
Marky Master

Registrado: 28 Dic 2002Mensajes: 251Ubicación: Las Rozas - Madrid (España)
|
Publicado: Lun 12 Ene, 2004 4:05 pm Asunto: |
|
|
Puedes hacer un pack de las tablas con el siguiente código:
| Código: |
void PackParadox (AnsiString ATable)
{
TDatabase *ADB;
bool SaveKC;
CRTblDesc PdxStruct;
TTable *Table=new TTable (NULL);
try
{
Table->TableName=ATable;
Table->Exclusive=true;
Table->Open();
ADB=Table->Database;
SaveKC=ADB->KeepConnection;
ADB->KeepConnection=true;
try
{
Table->Close();
ZeroMemory(&PdxStruct,sizeof(PdxStruct));
strcpy(PdxStruct.szTblName, ATable.c_str());
PdxStruct.bPack=true;
Check(DbiDoRestructure(ADB->Handle,1,&PdxStruct,NULL,NULL,NULL, false));
}
__finally
{
ADB->KeepConnection= SaveKC;
}
}
__finally
{
delete Table;
}
}
//-------------------------------------------------------------------------
|
Es decir:
| Código: |
PackParadox("c:\\mi directorio\mi tabla.db");
|
|
|
| Volver arriba |
|
 |
ikis Master


Registrado: 28 Dic 2002Mensajes: 703Ubicación: Madrid, España
|
Publicado: Lun 12 Ene, 2004 9:19 pm Asunto: |
|
|
| mu buen aporte MArky, para complementar mi respuesta, solo comentar que el DBUtil trae opciones de reindexación y recuperación de tablas corruptas. |
|
| Volver arriba |
|
 |
sp Invitado
|
Publicado: Lun 12 Ene, 2004 11:16 pm Asunto: |
|
|
Hola
He estado buscando en el sitio de borland pero no encuentro la utilidad que me dices.
Puedes indicarme el link correspondiente.
Gracias y disculpa la molestia |
|
| Volver arriba |
|
 |
Marky Master

Registrado: 28 Dic 2002Mensajes: 251Ubicación: Las Rozas - Madrid (España)
|
Publicado: Mar 13 Ene, 2004 9:43 am Asunto: |
|
|
Hola sp!
Si lo que te interesa, y espero no ofender, es eliminar el espacio dejado por los registros borrados, con la función que te posteé es más que suficiente (las tabla tiene que estar cerrada porque sino dará error). Ahora bien, si quieres descorromper tablas o índices puedes usar la librería que te recomienda ikis o bien la utilidad Pdxrblt que es freeware opensource y que utiliza la citada librería.
Ya nos contarás que tal. |
|
| Volver arriba |
|
 |
pampa Invitado
|
|
| Volver arriba |
|
 |
Marky Master

Registrado: 28 Dic 2002Mensajes: 251Ubicación: Las Rozas - Madrid (España)
|
|
| Volver arriba |
|
 |
|