Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Indexar Base de datos *.DBF

Estas en el tema de Indexar Base de datos *.DBF en el foro de Bases de Datos General en Foros del Web. Hola! creo que inicialemente me hace falta identificar este tipo de base de datos, Les comento desde el principio... Resulta que tengo una aplicacion que ...
  #1 (permalink)  
Antiguo 09/08/2006, 11:40
Avatar de rouuss  
Fecha de Ingreso: abril-2005
Ubicación: Mexico DF
Mensajes: 55
Antigüedad: 19 años, 7 meses
Puntos: 0
Indexar Base de datos *.DBF

Hola! creo que inicialemente me hace falta identificar este tipo de base de datos, Les comento desde el principio... Resulta que tengo una aplicacion que ya esta viejito, cuando fue creado, la ultima tecnología era windows 98 desarrollado en clipper y usa base de datos dbf.

Actualmente estaba muy lento por la carga de informacion, los usuarios se iban a tomar un cafesito en lo que les actualizaba sus cambios.

Asi que decidi borrarle informacion, del año del caldo, despues de esa ocacion empezo a almacenar en los registro mucha basura como #"""|||, etc, asi que segui eliminando esos registros con una aplicacion que se llama WinDBU. OZ.
Ahora lo que sucede es que me duplica la informacion, primero parece que la ha borrado y al siguiente día resulta que aparece la informacion pero doble vez.

Segun por lo que yo he investigado esto sucede porque se ha perdido la estructura de la base de datos es decir la indexación de la base de datos.

Lo que quiero saber espero alguien sepa, como indexo las tablas que reglas debo de seguir, y que apliacacion me permitiria hacerlo.

Espero comentarios ojala alguien pueda orientarme saludoss y gracias
Rouss.
  #2 (permalink)  
Antiguo 11/08/2006, 16:25
Avatar de bitbow  
Fecha de Ingreso: julio-2006
Ubicación: Distrito Federal
Mensajes: 635
Antigüedad: 18 años, 4 meses
Puntos: 34
Lo que puede estarte sucediendo es que la aplicacion que usas para editar la db no abre los indices a la hora de modificar, si tu aplicacion comercial (No WinDBU, la principal) esta echa en clipper debe de traer una herramienta para generar indices lo que hacen algunos programadores es simplemente borrar los indices y despues cuando el programa se inicia y no encuentra los indices los crea nuevamente o debe tener una opcion para generarlos con un click.

Antes de hacer cualquier cosa no se te olvide respaldar todo.
__________________
El ego es el mayor enemigo de un hombre inteligente.
  #3 (permalink)  
Antiguo 11/08/2006, 17:37
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 23 años
Puntos: 655
Yo trabaje un tiempo con Clipper y para mi, fue una de las mejores herramientas para desarrollo .prg. La ventaja que tenía Clipper, es que podía crear varios tipos de índices.

Indices separados por campos: Si en una tabla necesitabas crear varios índices, los creabas de forma independiente y por consiguiente, eran archivos independientes.

Un solo archivo indexado el cual contenía todos los índices de una tabla DBF: Este fue el tipo de index que usé para no estarme perdiendo ya que podía cerrar accidentalmente un archivo índice o no lo abría, generadome duplicidad de información.

El WinDBU o el DBU (DOS), abren las tablas y los índices de las tablas pero tenes que especificar cuales son. Si abriste solo las tablas (DBFs) SIN abrir los archivos índices, ya corrompiste los archivos indices a menos que la aplicación tenga una opción para reindexar.

Si ese es tu caso, tendrías 2 opciones:
1) Borrar los archivos indices actuales y volver a crearlos.
2) Reindexar todos los archivos índices.

Con respecto a la velocidad o tiempos de respuesta malos, se debe a que estos índices se cargan en memoria. Mientras más información, más lento los tiempos de respuesta. Una recomendación cuando se trabaja con DBFs, es crear índices sobre números y NO en campos Char.

Si esa aplicación vos la desarrollaste, vas a poder identificar todos los índices para regeneralos.

Si tus índeces son archivos independientes, te podría ayudar diciendote como generar un solo archivo indexado que contenga todos las llaves que necesitas por tabla en un solo archivo.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #4 (permalink)  
Antiguo 24/08/2006, 15:52
Avatar de rouuss  
Fecha de Ingreso: abril-2005
Ubicación: Mexico DF
Mensajes: 55
Antigüedad: 19 años, 7 meses
Puntos: 0
Reindexar en un solo archivo?

Bitbow. Muchas gracias por la recomendación de los respaldos.
BrujoNic: Bueno pues he investigado que tipo de indices maneja la aplicación y todo parece indicar que son del tipo " Un solo archivo indexado el cual contenía todos los índices de una tabla DBF" y la aplicacion trae una opcion de reindexar las tablas.
Y si efectivamente donde estuve borrando labasura es en los DBF´s, comentas que puedo hacer estas dos opciones:
"Si ese es tu caso, tendrías 2 opciones:
1) Borrar los archivos indices actuales y volver a crearlos.
2) Reindexar todos los archivos índices."

Ahora como identifico cuales son los indices actuales y como los creo?

Desafortunadamente no realice yo la aplicación, pero por lo que he visto tiene un modulo donde vizualiza y contiene todas las llaves de cada tabla, pero no tengo idea de como reindexar? Aun que se supone que la aplicacion misma lo hace.
  #5 (permalink)  
Antiguo 26/08/2006, 12:26
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 23 años
Puntos: 655
Hace una cosa que es más fácil...
Mové los índices actuales a otro directorio, dejando sólamente la aplicación (exe, obj) y los DBFs... Si la persona que desarrolló la aplicación lo hizo algo eficiente, al querer ingresar va a detectar que NO existen los índices y los volverá a crear. Si entrando a la aplicación NO te pregunta sobre los índices, te vas a la sección de reindexar e intenta crearlos nuevamente.

Una nota importante:

Si la aplicación trabaja en red (varios pueden accesarla simultaneamente), te recomiendo quitarle el cable de red para aislar completamente la aplicación porque para hacer ese proceso, la aplicación necesita tener acceso EXCLUSIVO de los archivos, o sea, NADIE puede estar trabajando o accesando los datos.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:16.