Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
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
  #2  
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: 19
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
  #3  
Antiguo 11-09-2008
Willo Willo is offline
Miembro
 
Registrado: jun 2006
Posts: 116
Poder: 20
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
  #4  
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
  #5  
Antiguo 11-09-2008
Willo Willo is offline
Miembro
 
Registrado: jun 2006
Posts: 116
Poder: 20
Willo Va por buen camino
Cita:
Empezado por ninguno Ver Mensaje
Bueno, esto es configurable, puedes hacer que se realice el filtrado a medida que escribes o bien al aceptar lo escrito.
Me imagino que esto soluciona la lentitud al momento del filtrado, cosa que ya de si es excelente....

Pero el problema de la carga inicial de los registros, veo que es cosa totalmente aparte.
Responder Con Cita
  #6  
Antiguo 12-09-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.437
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
Cita:
Empezado por lbuelvas Ver Mensaje
Bueno y los componentes nativos de Delphi TDBGrid tambien carga todos los registros?
Como ya te han dicho, depende de cómo tengas configurada la fuente de datos.

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.
Bueno, no siempre es así, o al menos el Grid de las Quantum no se comporta como el estandard.
En el case de ADO, que es el que más manejo, se puede configurar la fuente de datos para funcionar en modo Server-side (cursor en el lado servidor), con esto consigues que el Grid estandard de Delphi, no cargue todos los registros al abrir, sino que los vaya cargando a medida que los va necesitando. En este caso, los datos se piden bajo demanda, pero lo hace el DBGrid de forma automática.
La sorpresa es que la misma configuración la "enganchas" al Grid de las Quantum, y al abrir se recorre TODO el Dataset y carga todos los datos.

Es decir, el Grid de las Quantum, hace "algo más" que el estandard.
Se puede corregir con la propiedad que hemos comentado, pero el funcionamiento es distinto.
__________________
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
  #7  
Antiguo 12-09-2008
ninguno ninguno is offline
Miembro
 
Registrado: sep 2008
Posts: 45
Poder: 0
ninguno Va por buen camino
Hola Neftali

Cita:
Empezado por Neftali Ver Mensaje
La sorpresa es que la misma configuración la "enganchas" al Grid de las Quantum, y al abrir se recorre TODO el Dataset y carga todos los datos.

Es decir, el Grid de las Quantum, hace "algo más" que el estandard.
Como he dicho en un mensaje anterior, las Quantum piden al dataset asociado todos los registros siempre (a no ser que se retoque la susodicha propiedad) sino, no es capaz de hacer lo que hace (filtrados, ordenación de datos,.....). En cambio, un Grid estándar, sólo pedirá al dataset los datos necesarios para rellenarse de ellos.
Responder Con Cita
  #8  
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
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 10:13:54.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi