Newsgroup: it.comp.lang.visual-basic
Titolo: Paginazione

Devo paginare una FlexGrid per vedere 1000 record alla volta... Sapete come
si puņ fare?
L'evento scroll se si č giunti alla fine della flexgrid non viene attivato!!
Grazie!!!
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 L'evento scroll se si č giunti alla fine della flexgrid non viene attivato!!
non l'ho mai usato: ai tempi caricavo un 20/30 righe in griglia (a
seconda dell'ampiezza della finestra) e non mostravo mai la scrollbar
verticale.
gestivo pero` i tasti PgUp e PgDn, oltre a due command button che
richiamavano le funzioni di caricamento pagina: lavoravo tranquillamente
con tabelle di milioni di record.
-- 
ciao, hal

 non l'ho mai usato:
intendo l'evento scroll del flexgrid; per il resto e` una griglia
con cui si riesce a fare di tutto, mantenendo  il controllo della
situazione.
-- 
ciao, hal


Ok .. Grazie!! Scusa il ritardo!!
E' un'ottima idea provo ad implementarla...
Su 1.000.000 di record, secondo te è veloce il caricamento di ogni pagina?
Mi servirebbe una cache, per dare all'utente la possibilità si scorrere
velocemente le pagine, anche se l'accesso al database "richiede" un certo
ritardo!
Hai qualche idea?
Ciao!!


 Hai qualche idea?
se si tratta di una griglia, sfrutterei la cache del server e una
buona indicizzazione che mi permetta  di richiedere solo le righe
da caricare sulla griglia stessa.
trovo inutile  reinventarsi funzionalita` gia` implementate da un
buon database.
-- 
ciao, hal


Si ok.. sono d'accordo!
Purtroppo, non sempre la macchina che mi mette a disposizione l'utente è un
server anzi di solito si tratta di un computer "medio" (Devo considerare :
512 MB di Ram, Sempron).
Come se non bastasse la velocità deve essere quella di un click, cioè meno
di 1 sec di tempo di risposta..
Quindi date queste premesse ho adottato queste soluzioni:
- Lettura al DB mysql : sfruttando l'opzione "limit".
-Caricamento in griglia : 20 alla volta.
----------------------------------------------------------------------------------------------------------------
Il problema si ha quando si scorre la griglia con la VScrollBar è
estramaente lento..
Soluzione:
Ho seguito il tuo consiglio, e direi che sono veloce nello scorrimento delle
pagine.
Ma ora c'è un altro problema !!!
Se ho 1.000.000 di record e voglio andare al record n° 500.000 devo scorrere
circa 500.000/20 --> pagine??
Che ne pensi!
Ciao, Andrea.


 Ciao, Andrea.
--
Era prassi nel medioevo che per accertarne la morte al cadavere venisse 
morso l'alluce, per questo chi faceva tale lavoro veniva chiamato 
beccamorto.Un giorno giunse al cospetto di un beccamorto un uomo senza 
arti inferiori; da quel giorno sono nate le pompe funebri.
[CapoBecchino] - hotmail/msn: capobecchino [@] hotmail [.] com

 circa 500.000/20 --> pagine??
Nella SELECT imposti una clausola WHERE che ti faccia partire
dal 500millesimo record.
Sul come farlo, dipende dal database, che e`...?
-- 
ciao, hal


Si.. quella clausola che ti fa partire dal 500millesimo record nel db che
uso è "limit" e su questo siamo d'accordo. Ma intendevo dire che se l'utente
partendo dai 20 record iniziali deve andare al record n° 500.000 con la
barra di scorrimento trascinava il cursore più o meno nel mezzo mentre con i
tasti deve scorrere 500.000/20 pagine.
Penso quindi che l'unica soluzione possibile sia di aggiungere altri due
tasti che scorrono di 50 pagine alla volta.
Cmq, ti ringrazio per il confronto.
Ciao Andrea.


 tasti che scorrono di 50 pagine alla volta.
non dimenticherei di fornire una funzione di ricerca in base a parametri
noti da  parte dell' utente:  non sarebbe un bel servizio costringerlo a
scorrersi 500mila record a 50 alla volta ;-)
-- 
ciao, hal


Grazie hal,
purtroppo ho parecchi parametri con cui l'utente può ricercare e ordinare i
record del DB, quindi questo significa : problemi.
Infatti se posso approfittare della tua competenza e disponibilità, ti
vorrei spiegare il mio nuovo problema.
Ho una SCGRID, e mi carico i record 20 alla volta ordinandoli per data ed
includendo nella WHERE una range di data. Ogni volta che scorro sulla barra
mi vado a prendere 1 record dal DB e lo aggiungo in fondo. Fino qui è
velocissimo.
Se ordino per un altro campo (indicizzato) e nella WHERE ho sempre il range
di data è lentissimo!
Hai qualche idea del perchè?
Ciao Andrea
