Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

BDE, PARADOX, REINDEXAR e "INDEX OUT OF DATE"

682 views
Skip to first unread message

Francisco Javier Wis

unread,
Oct 20, 1999, 3:00:00 AM10/20/99
to
Hola!!

Tengo un par de problemas (consultas): Se me ha encargado que
corrija una aplicacion realizada por otra empresa. La aplicacion
es correcta, hace lo que se le pide, pero con cierta regularidad
se les presenta un error "INDEX OUT OF DATE" (la BD esta en
PARADOX).
Este error creo que se produce si no esta bien configurado el
BDE. Pero he revisado la configuracion ... y es correcta, en
realidad lo hace de manera interna la aplicacion (introduce el
NETDIR). Ademas yo he modificado el LOCAL SHARE. Para descartar
otras posibilidades he modificado la aplicacion y he añadido
los BLUSHBUFFERS en todas las TABLAS. Mi primera pregunta es
¿Hay algun otro motivo por el que se pueda dar este error?

Mi segunda consulta tiene que ver con la posibilidad de reconstruir
indices mediante programacion. El programador de la aplicacion
al no saber como corregir el error "INDEX OUT OF DATE" reconstruia
los indices de manera manual (utilizando el DATABASE DESKTOP).
El cliente se empeña en que acabe esta aplicacion para que si se vuelve
a dar el error tengan un margen de maniobra y puedan ellos mismos
resolver el problema. He intentado realizarla pero no consigo que
funcione correctamente. Mas o menos los pasos que he realizado son:
-A partir de una DataBase recupero la lista de todas sus tablas.
-Una a una, recupero la informacion de definicion de los indices,
los elimino e intento volver a crearlos.
El problema es que despues de borrar los indices no puedo volver a
crearlos:

...
Table1.DeleteIndex(nombre);
Table1.AddIndex(nombre,campos,opciones);
...

No funciona !!! ¿¿Alguien sabe como hacerlo?? ¿¿Es posible hacerlo??
Agradeceria que alguien posiera un pedacito de codigo resolviera el
problema.


Gracias por adelantado!!!

WIS

P.D.: COSANO si sabes resolverlo ... avisame !!! corre un poco de prisa
...
en realidad bastante!!!

Javi'x

unread,
Oct 20, 1999, 3:00:00 AM10/20/99
to
Saludos ;-)

En la propia pagina de Borland tienes una utilidad de reparacion llamada
TUTIL; Sirve para reparar Indices y Tablas PARADOX (no sirve con otras), y
te puedes bajar versiones para 16 y 32 bits.... El paquete es gratuito y
contiene un fichero DLL, un fichero PAS donde vienen definidas las funciones
de la DLL, y un ejemplo de su uso.

Tambien tienes informacion sobre esto y otros temas en la pagina de Pedro
Agullo
( http://www.ctv.es/USERS/pagullo/delphi_n.htm )


Francisco Javier Wis escribió en mensaje
<380CEFBD...@upcnet.upc.es>...

Juan Pablo Lecocq

unread,
Oct 21, 1999, 3:00:00 AM10/21/99
to
Tienes seguramente integridad referencial entre dos tablas y se ha
corrompido la relación:
1º si no puedes con el database desktop reestructurar la tabla ->2º
2º copia todos los indices y tablas a un subdirectorio
3º del directorio principal borra de uno en uno los indices de paradox y a
cada vez prueba a reestructurar la tabla.
4º cuando lo consigas habrás salvado los datos pero no las relaciones y los
indices...
tienes que regenerarlos. (apuntatelos en una hoja y guardala bajo llave)
P.D. eso te pasa por una caida en la red, la aplicacion se estrellado, ....
es lo peor que te puede pasar en paradox por que no hay manera de meterle
mano a la tabbla para
arreglarla sin borrar indices.
de todas maneras me acabo de bajar del www.clubdelphi.com una utulidad que
repara tablas paradox. veremos con que resultado.

Francisco Javier Wis <france...@upcnet.upc.es> escribió en el mensaje de
noticias 380CEFBD...@upcnet.upc.es...

jo

unread,
Oct 24, 1999, 3:00:00 AM10/24/99
to
Hola

Casi seguro que los ficheros de Paradox residen en un Servidor NT. ¿ Cierto
? Si no es así, me callo.

Pero si es así, entonces mejor deshabilitas la opción de "Oplocks" del
servidor NT. Esta opción, que por defecto está activada en el servidor NT,
se suele dar "de bofetadas" con los ficheros Paradox, y tipicamente produce
este tipo de errores de corrupción de índices.

Para ello, en el servidor NT y utilizando "regedit", en ...:
HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters

y añade los valores ...:
EnableOplocks (de tipo DWORD), valor: 0
CachedOpenLimit (de tipo DWORD), valor: 0

También, ten en cuenta que el redirector (vredir.vxd) local de Windows 95
OSR2 (la versión "B") era defectuoso, y también producía este tipo de
problemas. Microsoft tiene (o tenía) un parche a tal efecto, y que sustituía
este fichero (vredir.vxd) por uno que operaba ok.

Por supuesto, LOCAL SHARE=TRUE en todos los ordenadores también. Y ya
puestos, procura que todos los PC cliente tengan una UPS, pués si a media
operación sobre una tabla Paradox el PC se cuelga o se apaga, tienes muchas
probabilidades de que un índice quede "estropeado".

Saludos
Lluís Ollé

0 new messages