FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
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... |
#2
|
||||
|
||||
Añade BDE.
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#3
|
||||
|
||||
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; Código:
procedure TfrmEmiteInforme.fDbiRegenIndexes(TblName: TTable); begin Check(DbiRegenIndexes(TblName.Handle)); end; {la misma del ejemplo, je, je, je}
__________________
De los sueños se construye la realidad... |
#4
|
||||
|
||||
¿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 |
#5
|
||||
|
||||
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... |
#6
|
|||
|
|||
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. |
#7
|
||||
|
||||
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í. |
|
|
|