Visto l'interesse che suscita l'argomento, anch'io dico la mia!
Esistono sostanzialmente due approcci al problema:
- Utilizzare strumento che gestiscono la paginazione
- Implementare la paginazione a livello di database
A mio avviso la seconda soluzione è da preferire in quanto garantisce quasi sempre prestazioni migliori ed è totalmente svincolata dall'ambiente di sviluppo che si utilizza.
Il vero problema è che non tutti i DBMS supportano tale funzionalità: per esempio Oracle ha il ROWNUM che consente di gestire in maniera abbastanza agevole la paginazione. Il termine "abbastanza" è d'obbligo poiché il ROWNUM non è proprio la "manna dal cielo", ma richiede spesso query innestate per ottenere il risultato sperato
SELECT Intestazione FROM
(SELECT ROWNUM RN,* FROM clienti
WHERE ROWNUM <= 20)
WHERE RN >= 10
Il problema si complica ulteriormente se si utilizza un database come SQL Server che non ha funzioni simili a ROWNUM. In questo caso si è costretti a ricorrere ad uno stratagemma che non tutti conoscono e che risolve la paginazione in modo abbastanza soddisfacente:
SELECT TOP 20 * FROM
(SELECT TOP 20 * FROM
(SELECT TOP 120 *
FROM clienti
ORDER BY intestazione)
AS tmpTable1
ORDER BY intestazione DESC)
AS tmpTable2
ORDER BY intestazione ASC
Se si analizza questa query si vedrà che estrae i record relativi alla sesta pagina in un set di pagine di 20 record ciascuna: ecco la paginazione!
In ogni caso il problema è più complesso di quanto non sembri e consiglio di approfondirlo leggendo il mio articolo Gestire la paginazione dei dati.
Link:
http:\\www.braidi.com
Esce oggi il numero di Febbraio di Windows & .NET Magazine che riporta il mio articolo sull'integrazione dei sistemi.
L'analisi di un caso pratico per sfruttare le transazioni residenti su sistemi di tipo 3270 da applicazioni dipartimentali o Web.
L'articolo può essere letto dal mio sito ...
Fatemi sapere cosa ne pensate!!
Link:
http:\\www.braidi.com
Apre uffivialmente la mia home page in cui si possono trovare e leggere tutti i miei articoli, i link e le risorse utili per tutti i programmatori.
Visitatelo!
Link:
http:\\www.braidi.com