Foros del Web » Programando para Internet » ASP Clásico »

paginando un recordset

Estas en el tema de paginando un recordset en el foro de ASP Clásico en Foros del Web. Hola a todos, necisito ayuda para paginar un recorset, el problema me lo manda en la parte del codigo k tengo remarcado con rojo, si ...
  #1 (permalink)  
Antiguo 05/01/2006, 06:35
 
Fecha de Ingreso: noviembre-2004
Mensajes: 371
Antigüedad: 20 años, 6 meses
Puntos: 0
paginando un recordset

Hola a todos, necisito ayuda para paginar un recorset, el problema me lo manda en la parte del codigo k tengo remarcado con rojo, si lo comento no me da error pero no me pagina, el error que me manda es el sig.

ADODB.Recordset error '800a0bb9'

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

/destinatario_carrito.asp, line 165


espero me puedan ayudar, aca esta el codigo de la paginacion. desde ya se agradese cualkier tipo de ayuda.




<form name="form1" method="post" action="destinatario.asp?sec=17">
<%
Dim PaginaActual ' en qu� pagina estamos
Dim PaginasTotales ' cu�ntas p�ginas tenemos
Dim TamPagina ' cuantos registros por pagina
Dim CuantosRegistros

'MODIFICAR AQUI PARA CAMBIAR EL N� DE REGISTRO POR PAGINA
TamPagina = 5

sql = "select id_producto, titulo, descripcion, archivo, puntaje from producto"
set rsCarrito = server.CreateObject("adodb.recordset")
rsCarrito.PageSize = TamPagina
rsCarrito.CacheSize = TamPagina
rsCarrito.open sql, conexion , 1 , 2
PaginasTotales = rsCarrito.PageCount

'Leemos qu� p�gina mostrar. La primera vez ser� la inicial
if Request.Querystring("pagina")="" then
PaginaActual=1
else
PaginaActual=CInt(Request.Querystring("pagina"))
end if

if PaginaActual < 1 then
PaginaActual = 1
end if
if PaginaActual > PaginasTotales then
PaginaActual = PaginasTotales
end if

if PaginasTotales=0 then

Response.Write("No se encontraron resultados.")

else
'rsCarrito.AbsolutePage = PaginaActual
Response.Write("Pagina " & PaginaActual & " de " & PaginasTotales)
%>
<table width="95%" height="55" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="30" colspan="5">&nbsp;</td>
</tr>
<tr>
<td height="17" colspan="5" bgcolor="#EBEBEB" class="black12"><img src="images/flecha_base.gif" alt="desc" width="31" height="16"> <strong>Agregar producto </strong></td>
</tr>
<tr>
<td height="2" colspan="5">Agregar</td>
</tr>
<%
CuantosRegistros=0
while not rsCarrito.eof and CuantosRegistros < TamPagina%>
<tr>
<td><div align="center">
<input type="checkbox" name="agregar" value="<%=rsCarrito("id_producto")%>">
</div></td>
<td>Nombre :</td>
<td><%=rsCarrito("titulo")%></td>
<td width="10%">Puntos : </td>
<td width="32%" height="2"><%=rsCarrito("puntaje")%></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Descripci&oacute;n : </td>
<td><%=rsCarrito("descripcion")%></td>
<td>Imagen : </td>
<td height="2"><img src="upload_admin/<%=rsCarrito("archivo")%>" width="93" height="67"></td>
</tr>
<tr>
<td width="10%">&nbsp;</td>
<td width="15%">&nbsp;</td>
<td width="33%">&nbsp;</td>
<td>&nbsp;</td>
<td height="2">&nbsp;</td>
</tr>
<%
CuantosRegistros = CuantosRegistros + 1
rsCarrito.movenext
wend %>
</table>
<%
'Muestro los enlaces
Response.Write("<hr>")
if PaginaActual > 1 then
Response.Write("<A HREF=rspagina.asp?pagina="& PaginaActual-1& _
">10 Anteriores</A> ")
end if
if PaginaActual < PaginasTotales then
Response.Write("<A HREF=rspagina.asp?pagina=" & PaginaActual+1 & _
">10 Siguientes</A>")
end if


%>
<div align="center">
<input type="hidden" name="actionForm" id="actionForm" value="1">
<input type="submit" name="Submit" value="Agregar producto">
</div>
</form>
<% end if %>
<%end if%>
  #2 (permalink)  
Antiguo 05/01/2006, 06:49
 
Fecha de Ingreso: noviembre-2004
Mensajes: 371
Antigüedad: 20 años, 6 meses
Puntos: 0
ya solucione el problema solo ahi k agregar lo siguiente:

en la declaracion de variables agregamos las siguientes nuevas variables

Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3
Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adLockOptimistic = 3
Const adUseClient = 3

y luego en el recordset al hacer la query se agrega lo siguiente

rsCarrito.CursorType = adOpenKeyset
rsCarrito.LockType = adLockOptimistic
rsCarrito.CursorLocation = adUseClient

la query queda de la siguiente manera:

sql = "select id_producto, titulo, descripcion, archivo, puntaje from producto"
set rsCarrito = server.CreateObject("adodb.recordset")
rsCarrito.PageSize = TamPagina
rsCarrito.CacheSize = TamPagina
rsCarrito.CursorType = adOpenKeyset
rsCarrito.LockType = adLockOptimistic
rsCarrito.CursorLocation = adUseClient
rsCarrito.open sql, conexion , 1 , 2

y listo...
  #3 (permalink)  
Antiguo 05/01/2006, 10:49
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 23 años, 3 meses
Puntos: 2
revisa este script habe si te sirve

paginador automatico
__________________
Manual de ASP Avanzado ;-)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:37.