Esiste un componente DBGrid in grado di gestire velocemente set di dati di grandi dimensioni?

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

Domanda

Grandi set di dati, milioni di record, richiedono una programmazione speciale per mantenere la velocità in DBGrid.

Voglio sapere se ci sono componenti già pronti per Delphi (DBGrids) che lo fanno automaticamente?

MODIFICA Ad esempio: alcuni database hanno funzionalità come recuperare i primi record X (ad es. 100 record). Quando raggiungo il fondo con lo scorrimento, voglio recuperare automaticamente i 100 successivi. Al contrario, quando arrivo all'inizio, voglio recuperare i 100 precedenti. So di poter programmare questo, ma è sicuro che è possibile propagare quella funzione in un Controllo DBGrid in cui DBGrid esegue il buffering. Ciò consentirà di risparmiare un bel po 'di programmazione: devi semplicemente impostare la dimensione del buffer "quot" per così dire.

È stato utile?

Soluzione

Vorrei dare un'occhiata a Developer Express QuantumGrid Suite . (@birger: eri solo un segno di spunta più veloce ;-)) Quindi non sto solo duplicando la risposta, qualche elaborazione:

DevExpress Grid utilizza un controller di dati che ha diverse modalità per controllare i dati associati alla griglia. Uno di questi è esattamente quello che stai cercando:

  

Modalità griglia

     

Quando si utilizza la modalità griglia, solo una fissa   viene caricato il numero di record del set di dati   nella memoria. Perché solo un limitato   set di record vengono recuperati da   set di dati, ordinamento automatico, filtro   e i calcoli di riepilogo sono disabilitati   in modalità griglia (deve essere controllato   manualmente invece). Per impostazione predefinita, questo   la modalità è disabilitata e il   ExpressDataController carica tutto   record in un set di dati.

Ha alcuni inconvenienti, che sembrano abbastanza ovvi: non puoi fare un riassunto, ordinare o filtrare se non hai tutti i record a portata di mano.

Altri suggerimenti

Potresti dare un'occhiata al meraviglioso (gratuito, open source, dual licenziato come MPL 1.1 e GPL quindi utilizzabile in app chiuse) Virtual TreeView e i suoi discendenti forniti dall'utente (scorri verso il basso la pagina per trovarli.)

Modifica per riflettere la modifica della domanda: Virtual TreeView non solo ti consente di gestire milioni di nodi senza tenerli in memoria, ma questo è in realtà il modo preferito di usarlo. Fornisci i dati tramite callback di eventi quando è necessario e puoi dire all'albero di memorizzare nella cache quei dati (o meno)

Oh, e ovviamente ha anche una modalità grid / report in cui può funzionare come una tabella (basta impostare la proprietà GridExtensions su True.)

NextGrid è una griglia leggera, veloce e piacevole per Delphi

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

  

TRATTAMENTO DI GRANDI IMPORTI DI CELLULE SENZA VELOCITÀ DI VELOCITÀ

     

NextGrid può gestire quantità molto grandi   di cellule senza perdere velocità. Velocità   di aggiunta, modifica ed eliminazione di dati   non dipende dalla quantità di cellule.   Nella demo di NextGrid puoi vedere quanto velocemente   NextGrid funziona con 100.000 righe e 10   colonne = 1.000.000 di celle

Penso che DevExpress Quantumgrid supporta questo molto bene.

scusa, ho appena visto il tuo commento a Neftal & # 237;

se vuoi portare 100 record alla volta e poi recuperare i successivi 100, questo lavoro relativo ai componenti di accesso al database, guarda i componenti devart , offrono componenti di accesso diretto al database più usato e hanno la funzione di cui stai chiedendo e altro ancora:

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top