Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Regilla con Tabla muy grande (https://www.clubdelphi.com/foros/showthread.php?t=36699)

CHiCoLiTa 20-10-2006 18:40:25

Regilla con Tabla muy grande
 
Hola, estoy trabajando con Delphi 7 y me abro tablas de kk-Access con mas de 500.000 registros y con relaciones maestro detalle

Tengo un serio problema con esto.
Yo muestro los datos en una regilla, pero la tabla me la abre entera y me consume mucha memoria. Se me queda el ordenador tostado

Habia pensado hacer un TOP, pero como al pinchar en el titulo de las columnas ordeno los datos (Query.Sort) no me vale, a no ser que cambiara toda la programacion e hiciera una nueva sentencia SQL para mi query, aunque es un poco lio y lento

El otro problema es que si voy dando en la regilla al scroll, llegara un momento en que llegue al final, como alimentaria en este caso los datos?
Porque esto es access, no MySQL (limit...), aunque podria hacer la chapuza de ir aumentando el TOP segun detecto que llego a la ultima fila


En fin, no se si me he explicado con claridad, pero si alguien lo ha entendido y tiene alguna idea que ofreder soy todo oidos

Neftali [Germán.Estévez] 20-10-2006 18:48:52

Creo que el error es de concepto.
Simplemente te diría que una regilla con 500.000 registro no se debe visualizar.

Utiliza Filtros (obligatorios) y TOP.

Puedes cambiar el tipo de cursor (si está usando ADO) para que trabaje en modo csServer y no te cargue todos los datos en memoria. Pero vuelvo a repetir, creo que es un error de concepto. Lo que estás haciendo no tienen sentido.

Un Grid es un control de visualización donde el usuario ve una cantidad de información grande; Poner un Grid con 500.000 filas (o con más 10.000, si me apuras mucho) es inútil, porque no puedes encontrar nada, por mucho que uses el Scroll; Si buscas algo deberás usar filtros, por lo tanto es mejor hacer que los filtros se utilicen antes de mostrar los datos.

P.D: En una opinión.

CHiCoLiTa 23-10-2006 11:36:33

Estoy totalmente de acuerdo, por eso preguntaba

Tenia un programa que vaciaba de datos un sistema (SQL Server y varias tablas) y esos datos de historico los podias consultar con el otro programa (El de la regilla con MS-Access)

Resulta que el primer sistema crecio y lo siguieron usando (sorpresa que me lleve, sobretodo porque sigue siendo estable y funciona) y descargaron una base de datos (la de 500.000)

Al ocurrir esto, el programa para ver los backups se come toda la memoria (500.000 registros por ado en access...)

Puedo hacer TOP, y no haria mas de 1.000, pero tengo que cambiar toda la programacion. En vez de hacer Sort, tengo que rehacer el query.
Para mostrar de otro color las columnas por las que se ordenan, ver si es ascendente o descendente, etc

Por eso preguntaba que si existia una opcion alternativa. no se, hacer una cosulta y solo quedarme con los primeros registros en cache y el resto ignorarlo o algo asi

Lepe 23-10-2006 13:14:17

¿No tienes un campo Fecha en el histórico?

Saludos

CHiCoLiTa 23-10-2006 17:50:51

De ella dispongo, pero para ordenar sin rehacer el codigo que es lo que mas me temo?

Lepe 23-10-2006 18:01:21

Tendrás que modificar el código, ya puestos... usa una variable en las preferencias del programa, para indicar cuantos registros quiere el usuario. De esa forma si puedes usar TOP y ordenar por cualquier campo.

Saludos


La franja horaria es GMT +2. Ahora son las 00:01:54.

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