A ver, la paginación consta basicamente de ir obteniendo N registros cada vez, esto se hace con el método
RS.PageSize, una vez sabiendo cuantos registros vas a mostrar debes obtener el número de páginas, esto lo haces con el
rs.pagecount, hecho esto, una vez que obtienes el recordset, debes posicionarte en la página que deseas, esto es con
rs.absolutepage, ¡¡¡y listoooo!!! (diría Eugenio Dervez), lo demás solo es tu lógica para presentarlos (la capa de presentación en el modelo 3 tiers, dirian por ahí algunos).
Este otro es un código mas sencillo que saque de las respuestas anteriores:
Código:
<%
response.write session(pagina)&"<br>"
xx=request.form("direccion")
if xx = "Atras" then
session("pagina")=session("pagina")-1
if session("pagina")< 1 then
session("pagina")=1
end if
else
if xx="Adelante" then
session("pagina")=session("pagina")+1
else
session("pagina")=1
end if
end if
Set cnn = Server.CreateObject("ADODB.Connection")
sConn = "Driver={SQL Server};SERVER=10.1.1.1; DATABASE=Catalogos;"&_
"UID=yyy;PWD=xx"
cnn.Open sConn
response.write "0"&"<br>"
Set Ob_RS=Server.CreateObject("ADODB.Recordset")
'ob_RS.CursorLocation =adUseClient
response.write "1"&"<br>"
sql="Execute sListaArticulos 5,2,1"
Ob_RS.Open sql,cnn,3,1
response.write "2"&"<br>"
Ob_RS.PageSize=5 '10
if ob_rs.pagecount=0 then
Response.Redirect "novalores.asp"
end if
if session("pagina")>ob_rs.pagecount then
session("pagina")=ob_rs.pagecount
end if
ob_rs.absolutepage=session("pagina")
inicio=1+(session("pagina")-1)*ob_rs.pagesize
'fin=inicio+9
fin=inicio+5
if fin > ob_rs.recordcount then
fin =ob_rs.recordcount
end if
%>
<center><h3>LISTA DE PATENTES SOLICITADAS</h3></center>
<table border="0" width="100%" bgcolor="khaki">
<tr>
<td width="50%" align="center">Registros <font color="#FF0000"><%=inicio%> </font>
al <font color="#FF0000"><%=fin%></font> de un total de
<font color="#FF0000"><%=ob_rs.recordcount%></font></td>
<td width="50%" align="center">Página <font color="#FF0000"><%=session("pagina")%>
</font> de <font color="#FF0000"><%=ob_rs.pagecount%></font></td>
</tr>
</table>
<br>
<%IF NOT Ob_RS.Eof THEN%>
<TABLE BORDER=1>
<center>
<table border="2" bgcolor="white">
<TR>
<TH>Autor</TH>
<TH>Numero</TH>
<%Registro=0
'DO WHILE Registro<10 AND NOT Ob_RS.Eof
DO WHILE Registro<5 AND NOT Ob_RS.Eof
%>
<TR>
<TD><%=Ob_RS(0)%></TD>
<TD><%=Ob_RS(1)%></TD>
<%Registro=Registro+1
Ob_RS.MoveNext
LOOP
Response.Write "</TABLE>" %>
<table border="0" width="38%" height="5">
<tr><%if session("pagina")<> 1 then %>
<td width="50%" height="1" align="center">
<form method="POST" action="Prueb2.asp">
<p><input type="submit" value="Atras" name="direccion"></p>
</form>
</td><%end if%>
<%if session("pagina")< ob_rs.pagecount then%>
<td width="50%" height="1" align="center">
<form method="POST" name="Prueb2.asp">
<p><input type="submit" value="Adelante" name="direccion"></p>
</form>
</td><%end if%>
</tr>
</table>
</center>
</div>
<%END IF%>
<% Ob_RS.Close
Ob_Conn.Close%>