Pregunta

Los conjuntos de datos grandes, millones de registros, necesitan una programación especial para mantener la velocidad en DBGrids.

Quiero saber si hay componentes preparados para Delphi (DBGrids) que lo hagan automáticamente.

EDITAR Por ejemplo: algunas bases de datos tienen características como recuperar registros de 1st X (por ejemplo, 100 registros). Cuando llego a la parte inferior con desplazamiento, quiero buscar automáticamente los próximos 100. A la inversa, cuando llego al principio, quiero recuperar los 100 anteriores. Sé que puedo programar esto, pero seguro que es posible propagar esa característica a un Control DBGrid donde el DBGrid hace el almacenamiento en búfer. Ahorrará un poco de programación. Simplemente debe configurar el " tamaño del búfer " por así decirlo.

¿Fue útil?

Solución

Me gustaría ver Developer Express QuantumGrid Suite . (@birger: solo fuiste un tick más rápido ;-)) Así que no solo estoy duplicando la respuesta, sino algo de elaboración:

La cuadrícula DevExpress utiliza un controlador de datos que tiene varios modos para controlar los datos enlazados a la cuadrícula. Uno de estos es exactamente lo que está buscando:

  

Modo de cuadrícula

     

Al usar el modo de cuadrícula, solo un fijo   número de registros de datos se carga   en la memoria Porque solo una limitada   conjunto de registros se recuperan de la   conjunto de datos, clasificación automática, filtrado   y los cálculos de resumen están deshabilitados   en modo Grid (debe ser controlado   manualmente en su lugar). Por defecto, este   el modo está deshabilitado y   ExpressDataController carga todo   registros en un conjunto de datos.

Tiene algunos inconvenientes, que parecen bastante obvios: no puede hacer un resumen, clasificación o filtro si no tiene todos los registros a la mano.

Otros consejos

Es posible que desee echar un vistazo a la maravillosa (libre, código abierto, doble licencia como MPL 1.1 y GPL que se puede utilizar en aplicaciones de código cerrado) Virtual TreeView y sus descendientes proporcionados por el usuario (desplácese hacia abajo en la página para encontrarlos)

Edite para reflejar la edición de la pregunta: Virtual TreeView no solo le permite manejar millones de nodos sin tenerlos en la memoria, sino que de hecho es la forma preferida de usarlos. Usted suministra los datos a través de devoluciones de llamada de eventos cuando es necesario, y puede indicar al árbol que almacene en caché esos datos (o no).

Ah, y, por supuesto, también tiene un modo de cuadrícula / informe donde puede funcionar como una tabla (simplemente establece la propiedad GridExtensions en True).

NextGrid es una cuadrícula ligera, rápida y de aspecto agradable para Delphi

http://www.bergsoft.net/component/next-grid /features.htm

  

MANEJO DE UNA GRAN CANTIDAD DE CÉLULAS SIN VELOCIDAD DE PUNTO

     

NextGrid puede manejar una cantidad muy grande   De celdas sin perder velocidad. Velocidad   de añadir, modificar y borrar datos.   No depende de la cantidad de células.   En la demo de NextGrid puedes ver que tan rápido   NextGrid trabaja con 100,000 filas y 10   columnas = 1,000,000 celdas

Creo que DevExpress Quantumgrid es muy bueno.

lo siento, acabo de ver tu comentario a Neftalí

si llevara 100 registros por vez, y luego obtenga los siguientes 100, este trabajo relacionado con los componentes de acceso a la base de datos, mire los componentes devart , se ofrecen componentes de acceso directo a la base de datos más utilizada , y tienen la función que estás preguntando y más:

http://www.devart.com/products-vcl.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top