Ver Mensaje Individual
  #19 (permalink)  
Antiguo 03/09/2004, 12:56
Avatar de Myakire
Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
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%>