Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-09-2003
Avatar de DarkSide
DarkSide DarkSide is offline
Miembro
 
Registrado: jun 2003
Ubicación: La Serena - Chile
Posts: 91
Poder: 21
DarkSide Va por buen camino
Smile Reindexar en Paradox

Hola amigos del club Delphi.

¿Como puedo regenerar los indices en una tabla Paradox?.

Busque en el ayuda de Delphi, y me encontre con la función: DbiRegenIndexes, pero al ejecutarla me da un mensaje de error indicando que este identificador no ha sido declarado, y en ninguna parte encontre si tenia que agregar algo al uses.

Desde ya muchas gracias.
__________________
De los sueños se construye la realidad...
Responder Con Cita
  #2  
Antiguo 24-09-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Añade BDE.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 25-09-2003
Avatar de DarkSide
DarkSide DarkSide is offline
Miembro
 
Registrado: jun 2003
Ubicación: La Serena - Chile
Posts: 91
Poder: 21
DarkSide Va por buen camino
Ok, muchas gracias nuevamente Marcos.

Lamento realmente molestar tanto, pero al reindexar los archivos me arrojo el siguiente error: "Table is busy".

El codigo utilizado es el siguiente:
Código:
  Table1.Close;
  Table1.Exclusive:= True;
  Table1.Open;
  fDbiRegenIndexes(Table1);
  Table1.Close;
  Table1.Exclusive:= False;
Y el codigo de la función es:
Código:
procedure TfrmEmiteInforme.fDbiRegenIndexes(TblName: TTable);
begin
  Check(DbiRegenIndexes(TblName.Handle));
end;
{la misma del ejemplo, je, je, je}
Gracias.
__________________
De los sueños se construye la realidad...
Responder Con Cita
  #4  
Antiguo 25-09-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿Estás seguro de que el error se debe a DbiRegenIndexes?

Acabo de hacer una prueba con el mismo código y no me da problema. Sin embargo, si desde otra parte tengo abierta la misma tabla entonces lo que falla es al momento de intentar abrirla ya que no puede abrirla en modo exclusivo. El error que me manda es el de "Table is busy".

Haz un debug de la aplicación para ver dónde salta el error.

// Saludos
Responder Con Cita
  #5  
Antiguo 25-09-2003
Avatar de DarkSide
DarkSide DarkSide is offline
Miembro
 
Registrado: jun 2003
Ubicación: La Serena - Chile
Posts: 91
Poder: 21
DarkSide Va por buen camino
Hola Roman, gracias por contestar.

Cerré y abrí Delphi, y el error que me da es: "Object not Locked"

Si la tabla esta abierta en modo exclusivo, supongo que no deberia darme ese error.

¿Que podrá ser?

Gracias.
__________________
De los sueños se construye la realidad...
Responder Con Cita
  #6  
Antiguo 25-09-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 24
__cadetill Va por buen camino
El error que te da, como bien dice Román, es porque la tabla la tiene abierta algún otro programa de Windows (el SQL Explorer, el propio Delphi,....., cualquier programa)

Cierra toda conexión con la tabla y después ejecuta el programa que te hace la reindexación y verás que te funcionará

Si sigue sin funcionar, seguramente es porque se te habrá "quedado pillado" alguna vez el Delphi con la tabla abierta o algún otro programa. Reinicia la máquina y borra los archivos *.lck (si mal no recuerdo la extensión ya que hace tiempo que no trabajo con Paradox )

Última edición por __cadetill fecha: 25-09-2003 a las 01:52:55.
Responder Con Cita
  #7  
Antiguo 25-09-2003
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Poder: 21
Cabanyaler Va por buen camino
Primero, existen infinitos enlaces para tan antiguo problema con paradox. En la página de ianmarteens.com, la paginilla de delphi, trucomania, este mismo foro....
Después, de la manera más rápida y eficaz de regenerar los indices, es no regenerarlos, me explico, eliminalos, y vuelvelos a crear con algún procedimiento aunque te parezca que te va ha llevar un poco más de tiempo, al final observarás como no es así.
También puedes utilizar utilidades como por ejemplo sysutils, pero no siempre se reparan.
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 09:28:36.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi