codice:<%@LANGUAGE = VBScript%> <% ' DEFINISCO LE VARIABILI CHE MI SERVONO PER L'APPLICAZIONE Dim cn, rs, quanti, pag, contatore ' Creo un'istanza per la connessione ed una per il Recordset Set cn = Server.CreateObject("ADODB.Connection") Set rs = Server.CreateObject("ADODB.Recordset") ' APRO LA CONNESSIONE COL DATABASE cn.Open str_cn ' DEFINISCO IL NUMERO DI RECORD DA VISUALIZZARE PER OGNI PAGINA RecordsXPagina = 6 ' RECUPERO IL NUMERO DI PAGINA CORRENTE ' E CONTROLLO CHE NON SIA INFERIORE A 1 If Request.QueryString("pagina") = "" Then pagina = 1 Else pagina = CInt(Request.QueryString("pagina")) End If ' IMPOSTO UN CONTATORE contatore = 0 %> <html> <head> <title>Paginazione dei risultati di query molto lunghe in ASP</title> <style>a { color: blue; }</style> </head> <body> <table align="center" width="300" border="1"> <% Dim SQL ' Creo la query SQL SQL = "SELECT * FROM dati" ' EFFETTUO MATERIALMENTE LA PAGINAZIONE rs.Open sql, cn, 3,3 'PRIMO CICLO DI CONTROLLO ESISTENZA RS if not RS.eof then RS.PageSize = RecordsXPagina RS.AbsolutePage = pagina 'CICLO PER PAGINAZIONE For i = 1 to RecordsXPagina 'SECONDO CICLO DI CONTROLLO ESISTENZA RS 'PER EVITARE CHE SE ALL'ULTIMA PAGINA HA RECORDS MINORI DI RECORDSXPAGINA 'VADA IN ERRORE if not RS.eof then %> <tr><td><%=rs("nome")%> </td></tr> <% RS.movenext ' INCREMENTO IL VALORE DEL CONTATORE contatore = contatore + 1 end if next 'PAGINAZIONE VERA E PROPRIA Response.Write " Numero Pagine: " For pagina = 1 to RS.PageCount Response.Write "<A href='"&istring&"?pagina=" & pagina Response.write "'>" Response.write "<font size=1 color=#000080>" Response.Write pagina Response.Write "</A> " Next Response.Write ">> </td></tr>" 'CHIUSURA E DISTRUZIONE RECORDSET rs.Close Set rs = Nothing 'CHIUSURA E DISTRUZIONE CONNESSIONE AL DB Cn.Close Set Cn = Nothing end if %> </table>