PDA

Ver la Versión Completa : Index out of date


Luis_Alberto
25-11-2003, 22:48:28
Tengo un desarrollo en Delphi 5 y Paradox. Maneja en total unas 60 tablas, algunas bastante extensas (una de 7 campos y 500.000 registros, otra de 25 campos y 230.000 registros y otras dos de 12 campos y unos 300.000 regitros; aproximadamente, todas en Paradox). El equipo que hace las veces de servidor no es dedicado, tiene W98, 40 Gb HD, 128 Mb RAM, y la red es UTP 10/100. Las tablas se abren al inicio de la aplicación, y se cierran cuando termina, previo "FlushBuffers" correspondiente a cada una de ellas.
El problema es que, en ocasiones, de forma aleatoria (pero siempre cuando se modifica información, no cuando se consulta), me aparece el error "Index is out of date". ¿A qué se debe? ¿Debería abrir y cerrar las tablas necesarias en cada form, y no al inicio y final?.
Agradezco cualquier ayuda, antes de colgarme.

marcoszorrilla
26-11-2003, 07:46:52
El mensaje lo que indica es que un índice no se ha actualizado, esto ocurre por una mala configuración del BDE, tendrías que leerte el artículo que hay sobre Paradox en Red en las páginas del club.

Supongo que todos los índices serán mantenidos y que tendrás siempre en cada tabla una clave principal.

FlushBuffers deberías hacerelo en el evento AfterPost de cada tTable.

Un Saludo.

Luis_Alberto
27-11-2003, 04:37:03
Gracias por la sugerencia. Veré de efectuar el flush en al After tal como me dices a ver qué pasa.
En lo que refiere a la red, y la configuración del BDE, justamente lo hice siguiendo las indicaciones del artículo que me citas, o sea separé en el servidor, y bajo una carpeta compartida, otras tres que se denominan: Tablas, NetDir y Programas, de tal forma que las máquinas remotas apuntan en sus BDE (y usando normas UNC) hacia:
\\Servidor\c\Sistema\Tablas (en Alias),
\\Servidor\c\Sistema\NetDir (para los bloqueos),
y los accesos directos hacia, como ya sospecharás,
\\Servidor\c\Sistema\Programas\Sistema.exe.
También recordé colocar el Share=TRUE en todas, y por las dudas, ya que diseñé las tablas en el DBD (Paradox 7), indiqué lenguaje Paradox 'ascii' que es el que usa por defecto Database.
Si me olvido de algo, o ves que he pasado algo por alto, te agradezco me lo indiques. De pronto olvidé escribirlo, o tal vez no lo hice.
GRacias, Luis.

marcoszorrilla
27-11-2003, 07:51:22
Supongo que también utilizas un componente Tsession con el cual centralizas todas las tablas y además en el indicaste en su propiedad PrivateDir, cual va a ser el directorio Local que tendrá que existir en cada equipo para almacenar las tablas temporales que resulten de las consusltas. etc..


Un Saludo.