1 messaggio dal 09 dicembre 2004
Innanzitutto, sono lusingato per l'attenzione che avete prestato all'articolo pubblicato su CP 140 :-)


Cerco di rispondere ad alcuni dei commenti che ho letto...
Per ottenere il numero totale dei record che verrebbero estratti dalla query, non c'è altra strada se non quella di eseguire una select count preventivamente.
Tra l'altro - se leggete l'intero articolo è scritto anche li - la selezione preventiva per ottenere il numero totale dei record è da fare anche per un altro motivo.
Se non sappiamo quanti siano i record, infatti, non ci accorgeremmo mai di essere arrivati alla fine del nostro resultset! Per come è strutturata la query, infatti, all'aumentare del numero della pagina che si vuole estrarre, si otterrebbe sempre l'ultima.
Se per esempio la nostra tabella avesse 100 record e noi li estraessimo in pagine da 20 ciascuna, le prime 5 pagine sarebbero corrette. Nel momento in cui estraessimo la sesta, però, otterremmo nuovamente i dati presenti nella quinta...

Un altro commento, poi, proponeva una soluzione alternativa che condivido.
La soluzione, in pratica, prevede di estrarre i record appartenenti alle pagine che si vogliono saltare per poi eseguire una query NOT IN che va a prendere i primi record successivi a quelli identificati in precedenza.
La soluzione, però, è efficace solo se si utilizza come criterio di ordinamento la chiave primaria della tabella o uno o più campi che ne costituiscano un indice univoco.

Grazie comunque per l'attenzione e l'interesse
Lorenzo Braidi
lorenzo__@__braidi.com (eliminare i __)
http:\\www.braidi.com
Lorenzo, grazie a te per le puntualizzazioni...

Chi meglio dell'autore può spiegare e approfondire al meglio i concetti esposti nell'articolo?!?!

Ciao, Ricky.

Ing. Riccardo Golia
Microsoft MVP ASP.NET/IIS
ASPItalia.com Content Manager
http://blogs.aspitalia.com/rickyvr
http://ricky.aspitalia.com
http://www.riccardogolia.it

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.