Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-10-2006
CHiCoLiTa CHiCoLiTa is offline
Miembro
 
Registrado: may 2003
Posts: 102
Poder: 21
CHiCoLiTa Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 20-10-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 23-10-2006
CHiCoLiTa CHiCoLiTa is offline
Miembro
 
Registrado: may 2003
Posts: 102
Poder: 21
CHiCoLiTa Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 23-10-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
¿No tienes un campo Fecha en el histórico?

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 23-10-2006
CHiCoLiTa CHiCoLiTa is offline
Miembro
 
Registrado: may 2003
Posts: 102
Poder: 21
CHiCoLiTa Va por buen camino
De ella dispongo, pero para ordenar sin rehacer el codigo que es lo que mas me temo?
Responder Con Cita
  #6  
Antiguo 23-10-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
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
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Grande firebird lafirma Noticias 2 28-07-2006 01:12:14
archivo grande gustavoh JAVA 3 25-07-2006 18:30:50
Tabla Grande = Lentitud, Porque??? ELINK Firebird e Interbase 8 08-04-2005 15:46:59
Ejecutable muy grande osvrom Varios 16 27-04-2004 21:39:18
tabla muy grande Esau Conexión con bases de datos 2 31-05-2003 20:33:54


La franja horaria es GMT +2. Ahora son las 17:08:46.


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
Copyright 1996-2007 Club Delphi