Paginar resultados de forma eficaz?

21/01/2005 - 19:51 por jbmixed | Informe spam
Buenas tardes,

Tengo una consulta un poco pesada, tanto que se agota el tiempo de espera
del servidor y genera un error.

Me pregunto si existe alguna forma de "paginar la consulta", y no solo los
resultados que esta genera.


Gracias!

Xus.

Preguntas similare

Leer las respuestas

#1 Jhonny Vargas P. [MVP]
22/01/2005 - 20:59 | Informe spam
en el blog de Patrick Mac Kay tienes un articulo muy bueno

http://msmvps.com/pmackay/archive/2...29640.aspx



Saludos,
Jhonny Vargas P.
Santiago de Chile



"jbmixed" escribió en el mensaje
news:%23adMUo%23$
Buenas tardes,

Tengo una consulta un poco pesada, tanto que se agota el tiempo de espera
del servidor y genera un error.

Me pregunto si existe alguna forma de "paginar la consulta", y no solo los
resultados que esta genera.


Gracias!

Xus.


Respuesta Responder a este mensaje
#2 Sandra y María Claudia
24/01/2005 - 00:06 | Informe spam
Hola jbmixed:
Yo uso el siguiente script para paginar resultados. Incluye la opción de
mostrar una lista de páginas a las cuales podrás acceder directamente.

<%
If (Request("indice")="pd") Then
Session("Pagina")=CInt(Request("valor"))
Else
If (Request("Pagina")="ps") Then
Session("Pagina")=Session("Pagina")+1
Else If (Request("Pagina")="pa") Then
Session("Pagina")=Session("Pagina")-1
Else
Session("Pagina")=1
End If
End If
End IfTemp="****AQUI VA TU CADENA DE CONSULTA"
Tabla1.Open Temp, Conexion, adOpenStatic, adCmdTable
If Tabla1.BOF And Tabla1.EOF Then
%>
<b>No hay productos</b>
<%
Else

'ESTE VALOR DEBE SER EL MISMO DEL CONTADOR EN LA SECCION DO
Tabla1.PageSize=8

Tabla1.AbsolutePage=Session("Pagina")
%>
<div align="center" class="normal">
Se ha encontrado <%=Tabla1.RecordCount%> entradas en la base de datos<br>
Página <% =Session("Pagina")%> de <% =Tabla1.PageCount %> a mostrar<br>
<%
If Tabla1.PageCount > 1 Then
%>
<br>
<table border="0" cellspacing="0" cellpadding="0" bordercolor="#000000">
<tr>
<td>
<%
If Session("Pagina")>1 Then
%>
<a href="main2.asp?pagina=pa">
<img src="imagenes/Gif/flecha_izquierda.gif" alt="" width="16"
height="15" border="0">
</a>
<%
Else
%>
<img src="imagenes/Gif/flecha_izquierda_off.gif" alt="" width="16"
height="15" border="0">
<%
End If
%>
&nbsp;
</td>
<%
For J = 1 To Tabla1.PageCount
If J=Session("Pagina") Then
Color="#D6D7D9"
Else
Color="#FFCC00"
End If
%>
<td bgcolor="<% =Color %>" class="paginacion" align="center" <% If
J=Tabla1.PageCount Then %>style="border-right:1px solid black;"<% End If %>>
&nbsp;
<%
If J=Session("Pagina") Then
%>
<b><%= J %></b>
<%
Else
%>
<a href="main2.asp">
<b><%= J %></b>
</a>
<%
End If
%>
&nbsp;
</td>
<%
Next
%>
<td>
&nbsp;
<%
If Session("Pagina") < Tabla1.PageCount Then
%>
<a href="main2.asp?pagina=ps">
<img src="imagenes/Gif/flecha_derecha.gif" alt="" width="16"
height="15" border="0">
</a>
<%
Else
%>
<img src="imagenes/Gif/flecha_derecha_off.gif" alt="" width="16"
height="15" border="0">
<%
End If
%>
</td>
</tr>
</table>
<%
End If
%>
</div>
<br>
<table width="100%" border="0" cellspacing="0" cellpadding="0"
align="center">
<%
Cont=0
Registro=0
'ESTE VALOR DEBE SER EL MISMO QUE EL MENCIONADO ANTERIORMENTE (EL DE 8)
Do While Registro < 8 And Not(Tabla1.EOF)

%>

todo el código que necesites para mostrar la información

<%
Cont=Cont+1
If Cont =4 Then
Response.Write("</tr>")
Response.Write("<tr><td><br></td></tr>")
Cont=0
End If
Registro=Registro+1
Tabla1.MoveNext
Loop
%>
</table>
<div align="center" class="normal">
<%
If Tabla1.PageCount > 1 Then
%>
<table border="0" cellspacing="0" cellpadding="0" bordercolor="#000000">
<tr>
<td>
<%
If Session("Pagina")>1 Then
%>
<a href="main2.asp?pagina=pa">
<img src="imagenes/Gif/flecha_izquierda.gif" alt="" width="16"
height="15" border="0">
</a>
<%
Else
%>
<img src="imagenes/Gif/flecha_izquierda_off.gif" alt="" width="16"
height="15" border="0">
<%
End If
%>
&nbsp;
</td>
<%
For J = 1 To Tabla1.PageCount
If J=Session("Pagina") Then
Color="#D6D7D9"
Else
Color="#FFCC00"
End If
%>
<td bgcolor="<% =Color %>" class="paginacion" align="center" <% If
J=Tabla1.PageCount Then %>style="border-right:1px solid black;"<% End If %>>
&nbsp;
<%
If J=Session("Pagina") Then
%>
<b><%= J %></b>
<%
Else
%>
<a href="main2.asp?indice=pd">
<b><%= J %></b>
</a>
<%
End If
%>
&nbsp;
</td>
<%
Next
%>
<td>
<%
If Session("Pagina") < Tabla1.PageCount Then
%>
<a href="main2.asp?pagina=ps">
<img src="imagenes/Gif/flecha_derecha.gif" alt="" width="16"
height="15" border="0">
</a>
<%
Else
%>
<img src="imagenes/Gif/flecha_derecha_off.gif" alt="" width="16"
height="15" border="0">
<%
End If
%>
</td>
</tr>
</table>
<br>
<%
End If
End If
Tabla1.Close
%>


Si tienes problemas me avisas

Suerte!!!!!!!
____________________________________________________________________________________
SyMC
Suerte es la ayuda que te da la vida... Destino es lo que haces con esta
ayuda
Comparte con los demás, es la mejor manera de crecer y quererse más
Una de Mafalda (de Quino)..
(Mafalda y Manolito. Mafalda ve venir a Susanita)
Mafalda (pensando): ¡Zás!¡Ahí viene la susanita! Desde que anda peleada con
Manolito,estar con ellos es como estar en la UN:
Susanita: Hola Mafalda. ¿Has oído hablar del corchoanálisis?. Es como el
psicoanálisis pero sólo para aquellos que tienen cerebro de corcho. ¿Sabés?
Yo conozco a uno que debería ir al corchoanalista.
Manolito: ¡Vaya!... Yo creía que hoy había huelga de idiotas, pero parece
que salieron a trabajar.
Respuesta Responder a este mensaje
#3 jbmixed
24/01/2005 - 11:14 | Informe spam
gracias a los dos!


"Sandra y María Claudia" escribió en el mensaje
news:
Hola jbmixed:
Yo uso el siguiente script para paginar resultados. Incluye la opción de
mostrar una lista de páginas a las cuales podrás acceder directamente.

<%
If (Request("indice")="pd") Then
Session("Pagina")=CInt(Request("valor"))
Else
If (Request("Pagina")="ps") Then
Session("Pagina")=Session("Pagina")+1
Else If (Request("Pagina")="pa") Then
Session("Pagina")=Session("Pagina")-1
Else
Session("Pagina")=1
End If
End If
End IfTemp="****AQUI VA TU CADENA DE CONSULTA"
Tabla1.Open Temp, Conexion, adOpenStatic, adCmdTable
If Tabla1.BOF And Tabla1.EOF Then
%>
<b>No hay productos</b>
<%
Else

'ESTE VALOR DEBE SER EL MISMO DEL CONTADOR EN LA SECCION DO
Tabla1.PageSize=8

Tabla1.AbsolutePage=Session("Pagina")
%>
<div align="center" class="normal">
Se ha encontrado <%=Tabla1.RecordCount%> entradas en la base de


datos<br>
Página <% =Session("Pagina")%> de <% =Tabla1.PageCount %> a mostrar<br>
<%
If Tabla1.PageCount > 1 Then
%>
<br>
<table border="0" cellspacing="0" cellpadding="0" bordercolor="#000000">
<tr>
<td>
<%
If Session("Pagina")>1 Then
%>
<a href="main2.asp?pagina=pa">
<img src="imagenes/Gif/flecha_izquierda.gif" alt="" width="16"
height="15" border="0">
</a>
<%
Else
%>
<img src="imagenes/Gif/flecha_izquierda_off.gif" alt="" width="16"
height="15" border="0">
<%
End If
%>
&nbsp;
</td>
<%
For J = 1 To Tabla1.PageCount
If J=Session("Pagina") Then
Color="#D6D7D9"
Else
Color="#FFCC00"
End If
%>
<td bgcolor="<% =Color %>" class="paginacion" align="center" <% If
J=Tabla1.PageCount Then %>style="border-right:1px solid black;"<% End If


%>>
&nbsp;
<%
If J=Session("Pagina") Then
%>
<b><%= J %></b>
<%
Else
%>
<a href="main2.asp">
<b><%= J %></b>
</a>
<%
End If
%>
&nbsp;
</td>
<%
Next
%>
<td>
&nbsp;
<%
If Session("Pagina") < Tabla1.PageCount Then
%>
<a href="main2.asp?pagina=ps">
<img src="imagenes/Gif/flecha_derecha.gif" alt="" width="16"
height="15" border="0">
</a>
<%
Else
%>
<img src="imagenes/Gif/flecha_derecha_off.gif" alt="" width="16"
height="15" border="0">
<%
End If
%>
</td>
</tr>
</table>
<%
End If
%>
</div>
<br>
<table width="100%" border="0" cellspacing="0" cellpadding="0"
align="center">
<%
Cont=0
Registro=0
'ESTE VALOR DEBE SER EL MISMO QUE EL MENCIONADO ANTERIORMENTE (EL DE


8)
Do While Registro < 8 And Not(Tabla1.EOF)

%>

todo el código que necesites para mostrar la información

<%
Cont=Cont+1
If Cont =4 Then
Response.Write("</tr>")
Response.Write("<tr><td><br></td></tr>")
Cont=0
End If
Registro=Registro+1
Tabla1.MoveNext
Loop
%>
</table>
<div align="center" class="normal">
<%
If Tabla1.PageCount > 1 Then
%>
<table border="0" cellspacing="0" cellpadding="0" bordercolor="#000000">
<tr>
<td>
<%
If Session("Pagina")>1 Then
%>
<a href="main2.asp?pagina=pa">
<img src="imagenes/Gif/flecha_izquierda.gif" alt="" width="16"
height="15" border="0">
</a>
<%
Else
%>
<img src="imagenes/Gif/flecha_izquierda_off.gif" alt="" width="16"
height="15" border="0">
<%
End If
%>
&nbsp;
</td>
<%
For J = 1 To Tabla1.PageCount
If J=Session("Pagina") Then
Color="#D6D7D9"
Else
Color="#FFCC00"
End If
%>
<td bgcolor="<% =Color %>" class="paginacion" align="center" <% If
J=Tabla1.PageCount Then %>style="border-right:1px solid black;"<% End If


%>>
&nbsp;
<%
If J=Session("Pagina") Then
%>
<b><%= J %></b>
<%
Else
%>
<a href="main2.asp?indice=pd">
<b><%= J %></b>
</a>
<%
End If
%>
&nbsp;
</td>
<%
Next
%>
<td>
<%
If Session("Pagina") < Tabla1.PageCount Then
%>
<a href="main2.asp?pagina=ps">
<img src="imagenes/Gif/flecha_derecha.gif" alt="" width="16"
height="15" border="0">
</a>
<%
Else
%>
<img src="imagenes/Gif/flecha_derecha_off.gif" alt="" width="16"
height="15" border="0">
<%
End If
%>
</td>
</tr>
</table>
<br>
<%
End If
End If
Tabla1.Close
%>


Si tienes problemas me avisas

Suerte!!!!!!!



____________________________________________________________________________
________
SyMC
Suerte es la ayuda que te da la vida... Destino es lo que haces con esta
ayuda
Comparte con los demás, es la mejor manera de crecer y quererse más
Una de Mafalda (de Quino)..
(Mafalda y Manolito. Mafalda ve venir a Susanita)
Mafalda (pensando): ¡Zás!¡Ahí viene la susanita! Desde que anda peleada


con
Manolito,estar con ellos es como estar en la UN:
Susanita: Hola Mafalda. ¿Has oído hablar del corchoanálisis?. Es como el
psicoanálisis pero sólo para aquellos que tienen cerebro de corcho.


¿Sabés?
Yo conozco a uno que debería ir al corchoanalista.
Manolito: ¡Vaya!... Yo creía que hoy había huelga de idiotas, pero parece
que salieron a trabajar.


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida