Existe-t-il un composant DBGrid capable de gérer rapidement de grands ensembles de données?

StackOverflow https://stackoverflow.com/questions/200794

Question

Les grands ensembles de données, des millions d'enregistrements, nécessitent une programmation spéciale pour maintenir la vitesse dans DBGrids.

Je veux savoir s'il existe des composants prêts à l'emploi pour Delphi (DBGrids) qui le font automatiquement?

EDIT Par exemple: Certaines bases de données possèdent des fonctionnalités telles que l'extraction des premiers enregistrements X (par exemple, 100 enregistrements). Lorsque j'atteins le bas avec le défilement, je souhaite récupérer automatiquement les 100 prochains. À l'inverse, lorsque j'arrive au début, je souhaite récupérer les 100 précédents. Je sais que je peux programmer ceci, mais il est certainement possible de propager cette fonctionnalité DBGrid contrôle où DBGrid effectue la mise en mémoire tampon. Cela vous épargnera pas mal de programmation - il vous suffira de définir la "taille du tampon". pour ainsi dire.

Était-ce utile?

La solution

Je voudrais jeter un coup d'œil à Developer Express QuantumGrid Suite . (@birger: vous venez de taper plus vite ;-)) Donc, je ne fais pas que dupliquer la réponse, quelques éclaircissements:

La grille DevExpress utilise un contrôleur de données doté de plusieurs modes pour contrôler les données liées à la grille. L’un d’eux est exactement ce que vous recherchez:

  

Mode réseau

     

En mode Grid, seul un mode fixe   le nombre d'enregistrements de jeu de données est chargé   en mémoire. Parce que seul un nombre limité   ensemble d'enregistrements sont extraits de la   jeu de données, tri automatique, filtrage   et les calculs récapitulatifs sont désactivés   en mode réseau (doit être contrôlé   manuellement à la place). Par défaut, cela   le mode est désactivé et le   ExpressDataController charge tout   enregistrements dans un jeu de données.

Cela présente certains inconvénients, qui semblent assez évidents: vous ne pouvez pas faire de résumé, trier ou filtrer si vous n'avez pas tous les enregistrements sous la main.

Autres conseils

Vous voudrez peut-être jeter un coup d'œil à la magnifique (libre, open source, licence double MPL 1.1 et GPL donc utilisable dans les applications à source fermée) Virtual TreeView et ses descendants fournis par l'utilisateur (faites défiler la page vers le bas pour les trouver.)

Éditer pour refléter l'édition de la question: Virtual TreeView vous permet non seulement de gérer des millions de nœuds sans les conserver en mémoire, mais c'est en fait la méthode préférée pour l'utiliser. Vous fournissez les données par le biais de rappels d’événements, le cas échéant, et vous pouvez indiquer à l’arbre de mettre ces données en cache (ou non).

Oh, et bien sûr, il dispose également d'un mode grille / rapport dans lequel il peut fonctionner comme une table (définissez simplement la propriété GridExtensions sur True.)

NextGrid est une grille légère, rapide et agréable pour Delphi

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

  

GESTION DE GRANDES QUANTITÉS DE CELLULES SANS PERTE DE VITESSE

     

NextGrid peut gérer une très grande quantité   des cellules sans perdre de vitesse. La vitesse   d'ajouter, modifier et supprimer des données   ne dépend pas de la quantité de cellules.   Dans la démo NextGrid, vous pouvez voir à quelle vitesse   NextGrid fonctionne avec 100 000 lignes et 10   colonnes = 1 000 000 cellules

Je pense que la DevExpress Quantumgrid prend en charge cet excellent résultat.

désolé, je viens de voir votre commentaire à Neftal & # 237;

si vous souhaitez apporter 100 enregistrements par heure, puis récupérer les 100 suivants, ces travaux relatifs aux composants d'accès à la base de données, consultez les composants devart , ils offrent des composants d'accès direct à la base de données la plus utilisée. , et ils ont la fonctionnalité que vous demandez et plus encore:

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top