
20/03/2003, 15:02
|
| | Fecha de Ingreso: marzo-2003 Ubicación: Av. Grau 1190
Mensajes: 122
Antigüedad: 22 años, 2 meses Puntos: 3 | |
Estimados amigos muchas gracias, ya he solucionado mi problema, y tambien quiero contribuir en el foro, asi que les mando el codigo fuente completo para el que lo necesite.
****** <%
NomPage = Request.ServerVariables("SCRIPT_NAME") '**Nombre de la pagina
Dim pag, iEstado
Dim oConn, SQL, rs
Dim aDatos, iTotal
Dim I, J, N
N=4 'N = numero de registros por pagina
'Nos conectamos a la base de datos...
set oConn = Server.CreateObject("ADODB.Connection")
set rs = Server.CreateObject("ADODB.Recordset")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("miBD.mdb")
'oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("miBase.mdb")
SQL="SELECT * FROM info"
'Vamos a utilizar el Recordset más eficiente
'CursorType = Forward-Only
rs.CursorType = 0
'LockType = Read-Only
rs.LockType = 1
'CursorLocation = adUseClient
rs.CursorLocation = 3
'Y abrimos el Recordset
rs.Open SQL, oConn
'Obtengo los datos con GetRows
aDatos = rs.GetRows
'Cierro y limpio objetos ya
rs.Close
oConn.Close
set rs = nothing
set oConn = nothing
'Obtengo la página a mostrar de
'la querystring
pag = CInt(Request.QueryString("P"))
'Y llamo a PaginarGR
iEstado = PaginarGR (N, pag, aDatos)
'================================================= ====================================
' PaginarGR -- Pagina un vector bidimensional
' vector es el vector a paginar, iPag la página a mostrar y iRegsPorPag el nº de
' registros por cada página que queremos.
'================================================= ====================================
Function PaginarGR (iRegsPorPag, iPag, vector)
'
'I, J se utilizan para recorrer el vector
Dim I, J
'Total de páginas y la página que queremos mostrar
Dim iPaginas, iPagActual
'Total de registros, registro en que empezamos y registro en que terminamos
Dim iTotal, iComienzo, iFin
'Hallo el total de registros devueltos
iTotal = UBound(aDatos,2)+1
'Calculo el numero de páginas que tenemos
iPaginas = (iTotal \ iRegsPorPag)
'Si daba decimales, añado una más
'para mostrar los últimos registros
if iTotal mod iRegsPorPag > 0 then
iPaginas = iPaginas + 1
end if
'Si no es una página válida, comienzo en la primera
if iPag < 1 then
iPag = 1
end if
'Si es una página mayor al nº de páginas, comienzo en la última
if iPag > iPaginas then
iPag = iPaginas
end if
%>
<HTML>
<HEAD>
<TITLE>Paginar con GETROWS</TITLE>
<h2><center>Paginar con GetRows</center></h2>
<p> Página
<% = iPag %>
de
<% = iPaginas %>
(
<% = iTotal%>
registros)<br>
<% iComienzo = (iPag-1)*iRegsPorPag
'y donde termino:
iFin = iComienzo + (iRegsPorPag-1)
'Si no tengo suficientes registros restantes,
'voy hasta el final
if iFin > UBound(vector, 2) then
iFin = UBound(vector, 2)
end if
%>
</p>
<p>
<% Response.Write("<TABLE width='250' border='0' cellspacing='2' cellpadding='0'><TR bgcolor='#99CC99'>")
'Recorremos el vector
'Desde el primero hasta el último "registro"...
counter=0
for I= iComienzo to iFin
Response.Write("<TD>" & vector(1,I) & "<br>" & vector(0,I) & "</TD>")
Response.Write("<TD>" & vector(2,I) & "</TD>")
Response.Write("<TD>" & "<img src='../imgs/trans10x10.gif'>" & "</TD>")
counter=counter+1
If counter Mod 2=0 Then Response.Write "</tr>"
next
Response.Write "</table>"
%>
</p>
<p> </p>
<p> </p>
<p>Página:
<%For i = 1 To iPaginas
P = CInt(Request("P"))
If P < 1 Then P = 1
If cstr(i) <> Cstr(P) Then %>
<b><a href="<%=NomPage%>?P=<%=i%>">
<%=i%></a></b>
<%Else%>
<%=i%>
<%End If
Next
%>
::
<%
if iPag > 1 then
Response.Write("<A HREF="&NomPage&"?P="&iPag-1&"><b>Anterior</b></A> ")
end if
if iPag < iPaginas then
Response.Write("<A HREF="&NomPage&"?P="&iPag+1&"><b>Siguiente</b></A> ")
end if
PaginarGR = 0
End Function
'================================================= ====================================
%>
<p>
<p>
<p>
<p> </p>
<p> </p>
</body>
</html> |