Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-09-2008
Willo Willo is offline
Miembro
 
Registrado: jun 2006
Posts: 116
Poder: 18
Willo Va por buen camino
Partial Load Mode --- QuantumGrid

Hola a todos;

pues sigo experimentando con el QuantumGrid 5... he leido que existe una forma de cargar mas rapido un gran numero de registros. Se que la propiedad se llama Partial Load Mode... pero... alguien sabe en donde esta?

la he buscado en las propiedades del Grid, en las del Nivel y en las del DBtableview... sin suerte....

Agradezco de antemano cualquier ayuda.

Willo
Responder Con Cita
  #2  
Antiguo 09-09-2008
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por Willo Ver Mensaje
Hola a todos;

pues sigo experimentando con el QuantumGrid 5... he leido que existe una forma de cargar mas rapido un gran numero de registros. Se que la propiedad se llama Partial Load Mode... pero... alguien sabe en donde esta?

la he buscado en las propiedades del Grid, en las del Nivel y en las del DBtableview... sin suerte....

Agradezco de antemano cualquier ayuda.

Willo
Uso quantumgrid y nunca use dicha propiedad, ni la encuentro tampoco. Revise los fuentes y menos. Estas seguro que ese es el nombre?

Saludos
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #3  
Antiguo 09-09-2008
Avatar de TOPX
TOPX TOPX is offline
Miembro
 
Registrado: may 2008
Ubicación: Bogotá
Posts: 527
Poder: 16
TOPX Va camino a la fama
Hola,

Se llama Grid Mode, y debe tener en cuenta que en ese modo no sirven los filtros ni otras cositas...

Edit:

Cita:
Grid Mode
When using Grid Mode, only a fixed number of dataset records is loaded into memory. Because only a limited set of records are retrieved from the dataset, automatic sorting, filtering and summary calculations are disabled in Grid Mode (must be controlled manually instead). By default, this mode is disabled and the ExpressDataController loads all records in a dataset.
__________________
"constructive mind, destructive thoughts"
Responder Con Cita
  #4  
Antiguo 09-09-2008
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por TOPX Ver Mensaje
Hola,

Se llama Grid Mode, y debe tener en cuenta que en ese modo no sirven los filtros ni otras cositas...

Edit:
Ah, ahora si, esa la uso, pero lo dejo elegir al usuario , sabiendo que sacrifica (bueno no se si sabiendo, al menos me dicen que si con la cabeza)
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #5  
Antiguo 10-09-2008
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.272
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
Las Quantum son buenas, pero no hacen milagros...

Es lo que ya hemos comentado otras veces aquí. Por defecto las QuantumGrid cargan TODOS los datos en memoria; Con todos los datos cargados pueden hacer los filtros, ordenaciones, agrupaciones, totales y demás.

El problema, como tu planteas, llega cuando no se pueden cargar TODOS los datos. Para eso se usa el Grid Mode, pero entonces se pierde lo demás.

El Grid provee eventos para que si el usuario pulsa sobre el título para ordenar o intenta realizar un filtro te llegue el "aviso" y puedes rehacer la consulta (por ejemplo), pero el tema de agrupaciones y totales creo que queda definitivamente descartado.

Un saludo no milagroso.
__________________
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
  #6  
Antiguo 11-09-2008
Willo Willo is offline
Miembro
 
Registrado: jun 2006
Posts: 116
Poder: 18
Willo Va por buen camino
Unhappy

Debido a este problema (el manejo de grandes cantidades de registros); estamos reconsiderando el cambio a QuantumGrid; actualmente nuestra aplicacion usa el CRDBGrid de CoreLab.

Que si bien no es tan atractivo ni con tantas opciones como el Quantum, pues al menos maneja eficientemente grandes volumenes de registros.

Es una verdadera lastima, ya que nos habian gustado mucho las opciones que ofrecia el Quantum.

en fin... se comprueba una vez mas que el mundo no es perfecto
Responder Con Cita
  #7  
Antiguo 11-09-2008
lbuelvas lbuelvas is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 377
Poder: 21
lbuelvas Va por buen camino
Bueno y los componentes nativos de Delphi TDBGrid tambien carga todos los registros ?
__________________
Luis Fernando Buelvas T.
Responder Con Cita
  #8  
Antiguo 11-09-2008
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por lbuelvas Ver Mensaje
Bueno y los componentes nativos de Delphi TDBGrid tambien carga todos los registros ?
Claro que los carga... Cual es la pregunta?
El problema es que el amigo quiere la versatilidad de los quantum sin que demore en cargar.

Creo que el secreto esta en restingir el conjunto de datos a manejar.
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #9  
Antiguo 11-09-2008
ninguno ninguno is offline
Miembro
 
Registrado: sep 2008
Posts: 45
Poder: 0
ninguno Va por buen camino
Cita:
Empezado por donald shimoda Ver Mensaje
Claro que los carga...
Eso no es del todo cierto, depende del Dataset asociado al TDBGrid. Por ejemplo, si tienes un TClientDataSet, puedes hacer que te vaya cargando en paquetes de 20 registros (por decir algo) o bien todos a la vez.

En cambio, los QuantumGrid no tienen en cuenta el Dataset, lo cargan todo (si no se toca dicha propiedad).

Cita:
Empezado por donald shimoda Ver Mensaje
Creo que el secreto esta en restingir el conjunto de datos a manejar.
En eso sí estamos de acuerdo. No creo que a nadie le interese tener cargados.... digamos más de 1000 registros; que ya considero demasiados, de heche, más de 100 registros no se los mira nadie. Y si es para hacer algún tipo de cálculo, pues se hace el cálculo por separado pero los datos visualizados se filtran.
Responder Con Cita
  #10  
Antiguo 11-09-2008
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por ninguno Ver Mensaje
Eso no es del todo cierto, depende del Dataset asociado al TDBGrid. Por ejemplo, si tienes un TClientDataSet, puedes hacer que te vaya cargando en paquetes de 20 registros (por decir algo) o bien todos a la vez.
Pero en ese caso no decide el grid amigo, lo hace el dataset, asi que en realidad el grid esta cargando el conjunto de datos completo que brinda el dataset.
El grid no sabe si le pediste 20 o el conjunto de datos completos.
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #11  
Antiguo 11-09-2008
ninguno ninguno is offline
Miembro
 
Registrado: sep 2008
Posts: 45
Poder: 0
ninguno Va por buen camino
Cita:
Empezado por donald shimoda Ver Mensaje
Pero en ese caso no decide el grid amigo, lo hace el dataset, asi que en realidad el grid esta cargando el conjunto de datos completo que brinda el dataset.
El grid no sabe si le pediste 20 o el conjunto de datos completos.
No se si yo entendí mal o me expliqué mal

Entiendo que lbuelvas pregunta si el TDBGrid actua igual que el QuantumGrid, es decir, que sea cual sea el DataSet asociado y su configuración, cargue todos los registros; y eso es lo que estaba intentando explicar, es decir, que QuantumGrid es independiente del TDataSet asociado, él los carga todos esté detrás un TClientDataSet a 20 registros o a 50. En cambio, el TDBGrid sí depende del TDataSet asociado ya que sólo "cargará" los registros que le "envíe" el DataSet asociado.

Me he explicado mejor ahora?
Responder Con Cita
  #12  
Antiguo 11-09-2008
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por ninguno Ver Mensaje
Me he explicado mejor ahora?
Claro amigo, clarísimo, aunque incorrecto.

En ambos casos, QuantumGird o Dbgrid, o el que sea grid, cargaron los datos que le proporcione el dataset, ni mas ni menos. Si el clientdataset esta configurado para traer de a 20 registros, asi sera porque el quantumgrid no puede gobernar el conjunto de datos del clientdataset, se entiende?

Saludos.
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #13  
Antiguo 11-09-2008
ninguno ninguno is offline
Miembro
 
Registrado: sep 2008
Posts: 45
Poder: 0
ninguno Va por buen camino
Hola

Cita:
Empezado por donald shimoda Ver Mensaje
En ambos casos, QuantumGird o Dbgrid, o el que sea grid, cargaron los datos que le proporcione el dataset, ni mas ni menos. Si el clientdataset esta configurado para traer de a 20 registros, asi sera porque el quantumgrid no puede gobernar el conjunto de datos del clientdataset, se entiende?
La verdad es que no lo he probado, pero ¿estás seguro de eso? Yo creo que las QuantumGird le irán pidiendo registros al Dataset hasta llegar al Eof (de otra manera no podrían hacer ordenaciones ni filtrados ni nada), por lo que dará lo mismo cómo esté éste configurado (repito, creo ya que no lo he probado). En cambio, el DBGrid sólo le pedirá al Dataset los registros que necesite hasta llenarse de datos.
Responder Con Cita
  #14  
Antiguo 11-09-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Hola...

Cita:
Empezado por ninguno Ver Mensaje
Hola
La verdad es que no lo he probado, pero ¿estás seguro de eso? Yo creo que las QuantumGird le irán pidiendo registros al Dataset hasta llegar al Eof (de otra manera no podrían hacer ordenaciones ni filtrados ni nada), por lo que dará lo mismo cómo esté éste configurado (repito, creo ya que no lo he probado). En cambio, el DBGrid sólo le pedirá al Dataset los registros que necesite hasta llenarse de datos.
El QuantumGrid nunca va a pedir más datos que los que le devuelve el DataSet... ahora, si usas la propiedad GridMode, entonces este se comporta como un grid normal, pidiendo al DataSet solo los datos que va a mostrar, pero como bien dicen, todas las opciones extras que tiene (ordenamiento, agrupación, totales, etc...) ya no son automáticas...



Saludos...
Responder Con Cita
  #15  
Antiguo 11-09-2008
ninguno ninguno is offline
Miembro
 
Registrado: sep 2008
Posts: 45
Poder: 0
ninguno Va por buen camino
Hola

Pues mira, me ha picado la curiosidad y tenía que probarlo.

Pongo en un formulario una conexión

TDBGrid o TcxGrid -> TDataSource -> TClientDataSet -> TDataSetProvider -> TTable

El TTable configurado como:
- DataBaseName = DBDEMOS
- TableName = customer.db

El TClientDataSet como:
- PacketRecords = 10

El TDBGrid o TcxGrid lo suficientemente pequeños como para que no quepan más de 10 registros.

Pongo un TEdit (para sacar el resultado de la prueba) y un TButton con el siguiente código:

Código Delphi [-]
  ClientDataSet1.Open;
  Edit1.Text := IntToStr(ClientDataSet1.RecordCount)

Resultado de la prueba:
- con TDBGrid: me marca 10 registros
- con TcxGrid: me marca 55 registros

Como suponía, el TcxGrid va pidiendo registros al TClientDataSet hasta llegar a Eof, por lo que NO se comportan de la misma manera. Uno depende directamente del DataSet y el otro "pasa" del DataSet pidiéndole todos los datos.
Responder Con Cita
  #16  
Antiguo 11-09-2008
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por ninguno Ver Mensaje
La verdad es que no lo he probado, pero ¿estás seguro de eso?
Como que me llamo Pedro Navajas.
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #17  
Antiguo 11-09-2008
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por ninguno Ver Mensaje
Como suponía, el TcxGrid va pidiendo registros al TClientDataSet hasta llegar a Eof, por lo que NO se comportan de la misma manera. Uno depende directamente del DataSet y el otro "pasa" del DataSet pidiéndole todos los datos.
Desactiva fetchondemand y veras que hace...
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #18  
Antiguo 11-09-2008
Willo Willo is offline
Miembro
 
Registrado: jun 2006
Posts: 116
Poder: 18
Willo Va por buen camino
Se ha generado una buena discusion al respecto;

Pero finalmente la experiencia muestra una notable diferencia en velocidad de respuesta, entre Quantum y el grid usamos.

CRdbgrid (de DEVART -antes corelab-) "carga" hasta 20 veces mas rapido en una ventana que muestra 20 registros de un tabla en MySQL que contiene 247,000; que la misma pantalla usando Quantum.

Ahora bien, CRdbgrid usa los filtros hasta que el usuario los "confirma" y segun vi Quantum va "filtrando" la informacion conforme se teclea el filtro); las ordenaciones son mas rapidas en quantum que en CRdbgrid, pero no mucho....
Responder Con Cita
  #19  
Antiguo 11-09-2008
ninguno ninguno is offline
Miembro
 
Registrado: sep 2008
Posts: 45
Poder: 0
ninguno Va por buen camino
Hola

Cita:
Empezado por donald shimoda Ver Mensaje
Desactiva fetchondemand y veras que hace...
Hombre, normal, pero es que entonces estás forzando a que los paquetes de registros tengas que requerirlos tú por código mediante el método GetNextPacket. Es decir, un TDBGrid tampoco podrá llegar a tener nunca todos los registros del dataset si no es explícitamente mediante código, cosa que no pasa si esta propiedad está activada.

En fin, que algunos vemos el vaso medio lleno y otros medio vacío
Responder Con Cita
  #20  
Antiguo 11-09-2008
ninguno ninguno is offline
Miembro
 
Registrado: sep 2008
Posts: 45
Poder: 0
ninguno Va por buen camino
Hola

Cita:
Empezado por Willo Ver Mensaje
....segun vi Quantum va "filtrando" la informacion conforme se teclea el filtro)....
Bueno, esto es configurable, puedes hacer que se realice el filtrado a medida que escribes o bien al aceptar lo escrito. Lo que no recuerdo cual era la propiedad (si quieres puedo mirar de buscártela)
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
ondrawcolumncell en QuantumGrid Willo Varios 7 09-09-2008 23:24:55
Quantumgrid Devèxpresss Leonardo Varios 5 07-02-2008 16:38:41
Traducción del QuantumGrid 3.x extraviada courtois Varios 1 06-06-2007 11:11:53
Problemas al instalar el DevExpress QuantumGrid jcapitan Varios 2 03-08-2006 07:50:57
Recursos en Castellano de QuantumGrid? DANY OOP 6 14-07-2005 15:26:36


La franja horaria es GMT +2. Ahora son las 06:34:35.


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