Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Controlar Tiempo de Carga en Mysql -> Zeos -> Delphi (https://www.clubdelphi.com/foros/showthread.php?t=35307)

LuCkY_007 06-09-2006 20:34:44

Controlar Tiempo de Carga en Mysql -> Zeos -> Delphi
 
Tengo 23800 registros en una tabla y cuando abro una ventana con todos ellos se me queda 'freeze' (pillao) durante unos segundos y me gustaria que en ese tiempo salga una barra de carga o algo asi. He pensado en un timer, pero tampoco me ha funcionado, es como si se quedara pillao del todo el pc (Tipicas pantallas en blanco) , la cuestion esque he visto un componente (DBProgress) para access que controla eso y queria saber si hay alguna solucion o algun componente para evitar eso. THANKS!

roman 06-09-2006 20:52:46

La cuestión aquí es: ¿para qué quieres cargar 23800 registros? Esta es una costumbre que viene, creo, de la época de las bases de datos de escritorio, como Paradox o Access. Pero actualmente no hay justificación alguna. Lo usual es hacer consultas con criterios adecuados que regresen a lo sumo un par de cientos de registros (y eso ya es mucho).

// Saludos

LuCkY_007 07-09-2006 10:47:18

Supongo que lo que haré sera paginar los resultados...

roman 07-09-2006 14:51:07

No mira, realmente lo que tienes que cambiar es la filosofía de trabajo. No importa si los paginas o no, el punto es que estás presentando al usuario 23800 registros para que los pueda recorrer. Pero esto es lo que está mal. Nadie necesita recorrerse una lista de tantos registros.

En una base de datos como Paradox, la costumbre, en efecto, era la de presentar miles de registros y luego utilizar un Locate para que el usuario encontrase el adecuado. Pero en un sistema C/S, eso significa que traes desde el servidor esos miles de registros tan sólo para que el usuario ubique unos cuantos. Es una dilación absolutamente innecesaria.

Digamos que el usuario necesita buscar un cliente. En lugar de presentarle una rejilla con los 30000 clientes, mejor preséntale una ventana donde pueda introducir criterios de búsqueda, como los apellidos, nombre o algún otro dato. Con esos criterios armas una consulta SQL con lo que traes delservidor ya sólo poco registros. Incluso puedes hacer primero una consulta COUNT con los mismos criterios para determinar cuántos registros coincidentes hay. Si hay más de, digamos, 100 registros, le preguntas al usuario si no quiere refinar su criterio.

El caso es que, si bien el usuario en principio puede desconcertarse por no ver todos los clientes en una rejilla, cuando vea que tiene un método de búsqueda mucho más rápido y eficiente, terminará aceptando. Yo supongo que siempre puedes dejar la opción de ver todos los registros pero con un aviso de que esa operación demorará algunos minutos.

// Saludos


La franja horaria es GMT +2. Ahora son las 21:44:09.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi