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 |
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. |
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 |
¿No tienes un campo Fecha en el histórico?
Saludos |
De ella dispongo, pero para ordenar sin rehacer el codigo que es lo que mas me temo?
|
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 01:24:55. |
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