Autore Topic: stringhe in memoria  (Letto 705 volte)

Offline giob1642

  • Grande Gambero
  • ***
  • Post: 159
    • Mostra profilo
stringhe in memoria
« il: 22 Settembre 2014, 18:10:28 »
Lavorando con grossi database  non è raro trovarsi a leggere (esagero,ma non tanto) 3.000.000 di dati  od array  e riportarli in una dbgrid.
Il problema è abbastanza semplice, a parte il fatto che sia l'array che dbgrid vanno in crash, venendo meno spazio in memoria.
A mio avviso la soluzione potrebbe essere imporre un limite agli array ed a dbgrid oltrepassato il quale l'ide provvede in automatico a suddividere l'array in più pagine registrandolo in un file tmp attivando un adeguato scroll.
giorgio.
« Ultima modifica: 23 Settembre 2014, 17:54:57 da giob1642 »

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: stringhe in memoria
« Risposta #1 il: 10 Novembre 2014, 17:36:56 »
Lavorando con grossi database  non è raro trovarsi a leggere (esagero,ma non tanto) 3.000.000 di dati  od array  e riportarli in una dbgrid.
Il problema è abbastanza semplice, a parte il fatto che sia l'array che dbgrid vanno in crash, venendo meno spazio in memoria.
A mio avviso la soluzione potrebbe essere imporre un limite agli array ed a dbgrid oltrepassato il quale l'ide provvede in automatico a suddividere l'array in più pagine registrandolo in un file tmp attivando un adeguato scroll.
giorgio.

È impensabile mostrare 3milioni di records in una tabella. Il sistema collassa. Devi usare l'impaginazione per mostrare N records per volta e poi sostarti, mediante offset di N-M o N+M records

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: stringhe in memoria
« Risposta #2 il: 10 Novembre 2014, 23:59:02 »
@ giob1642
In effetti il compito che richiedi forse al sistema, oppure a Gambas, riguarda direttamente l'applicazione. Non è infatti ordinario che si debbano trattare in un solo colpo milioni, milioni e ... milioni di informazioni. É  perciò buona norma, in casi eccezionali di trattamento di giganteschi volumi di dati, organizzare la propria applicazione, simulando, in un certo qual modo, il paging che svolge il SO. coi volumi di informazioni logicamente coopresenti in memoria al momento corrente.
 :ciao:
:ciao: