Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Paginacion con DBGRID (https://www.clubdelphi.com/foros/showthread.php?t=27126)

Coco_jac 12-11-2005 06:10:44

Paginacion con DBGRID
 
Hola amigos del foro. Estoy comenzando a trabajar con Paradox, resulta que existe ujn tabla qu tiene como 40.000 registros y resulta muy pesada la carga de ya que lo jalo de la red, bueno eh pensado en una solucion , porque cargar todo ese cantidad de registros, mejor realizar una paginacion por ejemplo cargar solo las 2000 primeros registros en un DBGRID, y que muestre las diferentes paginas algo parecido a lo que muestra GOOGLE (1-2-3) paginas.
Me gustaria que me ayuden a tener ideas de como realizar esto, como cuando doy en la segunda pagina que carge los 2000 siguientes registros.

Gracias anticipadas.

roman 12-11-2005 06:33:02

Cita:

Empezado por Coco_jac
mejor realizar una paginacion por ejemplo cargar solo las 2000 primeros registros en un DBGRID, y que muestre las diferentes paginas

Y ¿para qué? ¿qué usuario de tu sistema va a recorrer cuarentamil registros? Te lo pregunto no por molestar, sino que es una tendencia que hemos tenido muchos de mostrar todos los registros (paginados o no), cuando la realidad es que un usuario, aunque piense que sí, no lo va a hacer.

Lo indicado es presentar a tu usuario un buen módulo de búsquedas donde establezca criterios que filtren los resultados adecuadamente. Con esos parámetros construyes una consulta SQL que pedirá entonces sólo una cantidad limitada de registros.

// Saludos

Coco_jac 12-11-2005 09:27:19

Gracias Roman, estoy de acuerdo en lo que dices, creo q es lo ideal para un usuario, pero como puedo solucionar lo lento que resulta la carga de todos los registros, en el DBGRID, ya que lo jalo de la red, y resulta muy pesado, tomando mucho tiempo para tal.

Gracias anticipadas.

vtdeleon 12-11-2005 16:08:25

Saludos
Cita:

Empezado por Coco_jac
Gracias Roman, estoy de acuerdo en lo que dices, creo q es lo ideal para un usuario, pero como puedo solucionar lo lento que resulta la carga de todos los registros, en el DBGRID, ya que lo jalo de la red, y resulta muy pesado, tomando mucho tiempo para tal.

Cita:

Empezado por roman
Lo indicado es presentar a tu usuario un buen módulo de búsquedas donde establezca criterios que filtren los resultados adecuadamente. Con esos parámetros construyes una consulta SQL que pedirá entonces sólo una cantidad limitada de registros.

Creo qeu está dicho.
Puedes utilizar la propiedad Filter y Filtered del dataset

roman 12-11-2005 16:54:22

Cita:

Empezado por vtdeleon
Saludos
Creo qeu está dicho.
Puedes utilizar la propiedad Filter y Filtered del dataset

¡Oh no!

Esto sólo filtrará los registros del lado del cliente pero de todas formas se habrá traido todos. Los parámetros del módulo de búsquedas servirán para hacer un

Código SQL [-]
select campos from tabla
where
  condiciones

Entonces el motor será el que filtre los resultados mandando al cliente sólo los encontrados. El chiste es que sean pocos, digamos no más de 500. Antes de esa consulta quizá podría hacer un

Código SQL [-]
select count() from tabla
where
  condiciones

para saber cuántos resultados coinciden con la búsqueda. Si el resultado es muy alto se avisa al usuario para que refine sus criterios.

Si aún con 500 registros hay lentitud para cargar entonces habrá que revisar por otro lado pues no es normal que tarde tanto.

// Saludos

vtdeleon 12-11-2005 17:02:15

Saludos

Segun lo que he leido en este foro(en un hilo que no recuerdo), a pesar de usar sentencias SQL para traer x cantidad de campos o una serie de registros, el rendimiento seria el mismo al ser tablas planas (Me basaba en ello). Esto no lo he comprobado, porque no he manejado tantos registros en paradox.

roman 12-11-2005 18:46:50

mmm.. tienes razón. Habría que hacer pruebas, quizá con Paradox de lo mismo, en cuyo caso daría lo mismo paginación o no.

// Saludos


La franja horaria es GMT +2. Ahora son las 03:32:02.

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