utilizzazione di un db

paginazione: ASP ricorsiva

<head><meta http-equiv="expires" content="0"></head> <% PageNo = request("page") If PageNo="" then PageNo=1 End If %> apertura del db <% set conn = server.createobject("adodb.connection") conn.open "guestbook" sqlstmt = "SELECT * from Guestbook ORDER BY Date DESC" Set rs = Server.CreateObject("ADODB.Recordset") rs.Open sqlstmt, conn, 3, 3 rs.Pagesize=10 rs.absolutepage=PageNo %> ' valori a disposizione TotalRecs = rs.recordcount TotalPages = cInt(rs.pagecount) messaggi If PageNo = 1 then response.write "ci sono " response.write TotalRecs & " righe in " response.write TotalPages & " pagine" End If If rs.eof then response.write "non ci sono righe." response.end End If blocco di righe (con interessanti controlli) x = 0 ' visualizziamo 10 righe sulla pagina For x = 1 to 10 If rs.eof then Exit For Else When = rs("Date") Name = rs("Name") ' togliamo le fastidiose doppie virgolette Name = Replace(Name,"''","'") City = rs("City") State = rs("State") Country = rs("Country") Email = rs("Email") URL = rs("URL") ' verifichiamo un campo vuoto If IsEmpty(URL) or URL = "" then Link = "no URL given" Else Link = "<a href='" & URL & "'>" & URL & "</a>" End If Comments = rs("Comments") Comments = replace(Comments, "''", "'") Start = rs("Date") %> <table width=600 border=0 cellpadding=0 cellspacing=0> <tr><td colspan=3><font face="arial" size=2><%= When %></td></tr> <tr><td colspan=3 bgcolor="#C5BE60"><font face="arial" size=2 color="#000000"><b><%= Comments %></b></font></td></tr> <tr><td width=125 valign="top"><font face="arial" size=1> <% If IsEmpty(Email) or Email="" then response.write(Name) Else response.write "<a href='mailto:" & Email & "'>" & Name & "</a>" End If %> </font></td> <td width=200 valign="top"><font face="arial" size=1><i><%= City %>&nbsp; <%= State %>&nbsp;<%= Country %></i></td> <td width=275 align="right" valign="top"> <font face="arial" size=1><%= Link %></font></td></tr> </table> <% rs.MoveNext End If Next %> mettiamo i bottoni di navigazione
(lingo, ma controlla anche prima e ultima)
response.write "<table width=300 border=0><tr>" response.write "<td align='center'>" ' we don't want "Previous" on the first page so we'll do this If PageNo > 1 then response.write "<form method='post' action='default.asp'>" response.write "<input type='hidden' name='Page' value='" & PageNo-1 & "'>" response.write "<font face='arial' size=2>" response.write "<input type='submit' value='<< Prev'></form>" Else response.write "&nbsp;" End If response.write "</td><td align='center'>" ' we don't want "Next" on the last page so we'll do this If NOT rs.eof then response.write "<form method='post' action='default.asp'>" response.write "<input type='hidden' name='Page' value='" & PageNo+1 & "'>" response.write "<font face='arial' size=2>" response.write "<input type='submit' value='Next >>'></form>" Else response.write "&nbsp;" End If response.write "</td></tr></table>" e, finalmente, chiudiamo conn.close set conn = nothing %>