PDA

Ver la Versión Completa : Problemas con un sitema cliente/servidor en Delphi 5 & Interbase 5.5. Help please.


juanblack
23-09-2008, 20:52:39
Saludos de nuevo amigos del foro.

Sucede que tengo una aplicación cliente/servidor hecha eh delphi V.5 y que usa como base de datos Interbase 5.5. La aplicación funciona bajo windows 95/2000/xp y todo funciona ok.
La carga de trabajo para esta aplicación no es muy grande pues por lo generál son de 2 a 5 equipos cuando mucho que lo tienen instalado y que no generan mas de 15 ó 20 registros al día, hasta ahi soy feliz.

El problema se presento cuando hace ya un par de años instale esta misma aplicación en un área de mi empresa en donde la carga de trabajo para esta aplicación es mucho mayor pues lo tengo instalado en mas de 10 equipos (win xp) trabajando bajo una red inalambrica y que agregan muchos registros al día. A la fecha llevan más de 50,000 registros en la tabla maestra y la aplicación esta LENTISIMA (al hacer consultas, actualizaciónes, etc.) ademas de que de vez en vez, cuando el usuario imprime, ésta sale incompleta ó deplano se pasma o (peor aún) lanza un error de acceso (Access Violation) y tan tan. El triste usuario debe reiniciar la aplicación para continuar con el trabajo.

En esta aplicación y para conectarme a la base de datos solo uso los componentes de Delphi DataAccess (TDatabase, TTable, TQuery, TDataSource) y DataControls (TDBEdit, TDBGrid, TDBNavigator, etc.).

Al iniciar la aplicación abro la conexión a la base de dato remota, abro las tablas y muestro en una forma todos los datos de mis tablas y catálogos (maestras/detalles) ¿Será por eso que la aplicación esta tan lenta pues si encuentra 50,000 registros en la tabla maestra éstos los carga en la memoria del cliente? ¿habra alguna forma de hacer que esto sea mas ágil y no tarde tanto? ¿será por la configuración de red (inalambrica) de mi empresa? ¿hay algo más que deba configuara al momento de compilar mi aplicación?

Aconsejenme por favor.

Muchas gracias de antemano.

p.d. no estoy seguro de que este sea el lugar correcto donde postear este problema, pero de no ser asi favor de moverlo al sitio adecuado. Gracias.

ContraVeneno
23-09-2008, 22:55:02
Sí, lo más probable es que sea porque cargas en memoria todos los registros que tengas en tus TTable... yo utilizaría TQuerys en lugar de TTables...

o mínimo en lugar de abrir (Active := True) los TTables al inicio, los abriría solo cuando fuera necesario.