¿Existe un componente DBGrid que pueda manejar grandes conjuntos de datos rápidamente?
-
03-07-2019 - |
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.
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: