PDA

Ver la Versión Completa : Paginacion con DBGRID


Coco_jac
12-11-2005, 06:10:44
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
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
SaludosGracias 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.
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
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


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


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