Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Reindexar en Paradox (https://www.clubdelphi.com/foros/showthread.php?t=3931)

DarkSide 24-09-2003 23:26:35

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.

marcoszorrilla 24-09-2003 23:38:52

Añade BDE.

Un Saludo.

DarkSide 25-09-2003 00:01:06

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.

roman 25-09-2003 00:55:46

¿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

DarkSide 25-09-2003 01:10:27

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.

__cadetill 25-09-2003 01:50:06

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 :D)

Cabanyaler 25-09-2003 09:00:21

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.


La franja horaria es GMT +2. Ahora son las 03:12:10.

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