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

Error al paginar

Estas en el tema de Error al paginar en el foro de ASP Clásico en Foros del Web. Hola a todos! Alguien sabe porque me falla esta paginacion? Siempre se va a 'no quedan mas elementos' y os aseguro que quedan unos cuantos. ...
  #1 (permalink)  
Antiguo 22/02/2006, 15:43
 
Fecha de Ingreso: octubre-2003
Mensajes: 184
Antigüedad: 21 años, 6 meses
Puntos: 0
Error al paginar

Hola a todos!

Alguien sabe porque me falla esta paginacion? Siempre se va a 'no quedan mas elementos' y os aseguro que quedan unos cuantos.

<%TamPagina=10
if Request.Querystring("pagina")="" then 'Leemos qué página mostrar. La primera vez será la inicial
PaginaActual=1
else
PaginaActual=CInt(Request.Querystring("pagina"))
end if
set oConn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")
oConn.Open "colegio"
nivel=request.QueryString("nivel")
curso=request.QueryString("curso")
if curso="" and nivel="" then%>
<script language="javascript">ErrorDat();</script>
<%elseif curso<>"" and nivel<>"" then
SQL="select * from asignatura where curso='"&curso&"' and tipoCurso='"&nivel&"'"
rs.PageSize=TamPagina ' Defino el tamaño de las páginas
rs.CacheSize=TamPagina
rs.CursorLocation = 3 ' Defino el cursor en el cliente: adUseClient
rs.Open SQL, oConn, 1, 2 ' Abro el recordset
PaginasTotales=rs.PageCount 'Cuento las páginas
Response.Write("<br><br>")%>
<div align="center"><strong><font size="5" face="Courier New, Courier, mono">Datos de la asignatura</font></strong></div>
<%Response.Write("<br><br>")
if PaginaActual < 1 then 'Compruebo que la pagina actual está en el rango
PaginaActual = 1
end if
if PaginaActual > PaginasTotales then
PaginaActual = PaginasTotales
end if
if PaginasTotales=0 then 'Por si la consulta no devuelve registros!
Response.Write("No se encontraron resultados.")
else
rs.AbsolutePage=PaginaActual%>
<table>
<tr>
<td width="20"></td>
<td><div align="left"><strong>Página <%=PaginaActual%> de <%=PaginasTotales%></strong></div></td>
</tr>
</table>
<%Response.Write("<br><br>")
Response.Write("<center><table><tr><th>Asignatura< th>Código<th>Curso<th>Profesor<th>DNI")
registro=0
do while registro<10 and not rs.eof
Response.Write("<tr><td height=25 width=200>"&" "&"<center>"&RS("nomasig")&" ")
Response.Write("<td width=75>"&" "&"<center>"&RS("Codasig")&" ")
Response.Write("<td width=150>"&" "&"<center>"&RS("curso")&" "&RS("tipoCurso")&" ")
set rs1=oconn.execute("select * from asigprof where codasig='"&rs("codasig")&"'")
if not rs1.eof then
Response.Write("<td width=200>"&" "&"<center>"&RS1("Nompro")&" "&RS1("Apepro")&" "&RS1("Apepro1")&" ")
Response.Write("<td width=150>"&" "&"<center>"&RS1("DNIpro")&" ")
else
Response.Write("<td width=200>")
Response.Write("<td width=150>")
end if
registro=registro+1
Rs.movenext
loop
response.Write("</table>")
end if
rs.Close
oConn.Close
set rs=nothing
set oConn=nothing

if PaginaActual > 1 then
Response.Write("<A HREF=verasi3.asp?nivel="&nivel&"& curso="&curso&" &pagina="& PaginaActual-1& ">10 Anteriores</A>&nbsp;&nbsp;&nbsp;")
end if
if PaginaActual < PaginasTotales then
Response.Write("<A HREF=verasi3.asp?nivel="&nivel&"& curso="&curso&" &pagina=" & PaginaActual+1 &">10 Siguientes</A>")
end if%>

Última edición por movil; 22/02/2006 a las 18:09
  #2 (permalink)  
Antiguo 22/02/2006, 16:19
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
movil, está como un poco largo para leer ese código y 'no quedan mas elementos' no lo encontré en tu código buscándolo (repito, no lo leería)
Marcá de alguna manera la línea (otro color, en negritas, etc)
__________________
...___...
  #3 (permalink)  
Antiguo 22/02/2006, 18:09
 
Fecha de Ingreso: octubre-2003
Mensajes: 184
Antigüedad: 21 años, 6 meses
Puntos: 0
ya ta marcado en negrita
  #4 (permalink)  
Antiguo 22/02/2006, 18:15
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 20 años, 7 meses
Puntos: 18
preuba a añadir
Código:
rs.CursorType = 0
rs.LockType = 1
  #5 (permalink)  
Antiguo 22/02/2006, 18:30
 
Fecha de Ingreso: octubre-2003
Mensajes: 184
Antigüedad: 21 años, 6 meses
Puntos: 0
Da igual donde poner las instrucciones? Si es asi sigo con el mismo problema, la primera vez me muestra los 10 primeros registros y la siguiente vez no muestra nada, puede ser problema de los datos que tengo que pasar a la consulta sql?
  #6 (permalink)  
Antiguo 22/02/2006, 18:38
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 20 años, 7 meses
Puntos: 18
en la primera entrada, crea una sesión con la cadena sql. en las siguientes compruebas que si existe la sesión se abra el recordset con esa sesión

if session("sql")<>"" then
rs.open session("sql")
else
sql="la cadena sql que quieras"
rs.open sql
session("sql")=sql
end if

y no, lo de antes se pone ANTES DE ABRIR EL RECORDSET.
  #7 (permalink)  
Antiguo 22/02/2006, 19:29
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 23 años, 2 meses
Puntos: 2
Cita:
la primera vez me muestra los 10 primeros registros y la siguiente vez no muestra nada
eso es cuando pinchas sobre el enlace 10 siguientes, es por que no estas pasando los parametros necesarios

revisa este script haber si te sirve
http://www.forosdelweb.com/f15/regalo-navidad-paginador-automatico-359237/
  #8 (permalink)  
Antiguo 23/02/2006, 03:09
 
Fecha de Ingreso: octubre-2003
Mensajes: 184
Antigüedad: 21 años, 6 meses
Puntos: 0
Nada, tampoco lo soluciono, he probado a poner esto en el link de '10 siguientes' pero tampoco sale:

Response.Write("<A HREF=verasi3.asp?nivel="&nivel&"& curso="&curso&" &pagina="& PaginaActual-1& ">10 Anteriores</A>&nbsp;&nbsp;&nbsp;")

Lo que deberia enviarse es nivel=Educacion primaria y curso=1 pero envia
nivel=Educacion y curso=..., a vacio, no se cual es el motivo y no se como solucionarlo.

Tambien he probado con lo siguiente:

Response.Write("<A HREF=verasi3.asp?nivel="&request.queryString("nive l")&"& curso="&request.queryString("curso")&" &pagina="& PaginaActual-1& ">10 Anteriores</A>&nbsp;&nbsp;&nbsp;")

Pero me sale lo mismo que antes y por ultimo he probado con:

Response.Write("<A HREF=verasi3.asp?nivel="&rs("tipoCurso")&"& curso="&rs("curso")&" &pagina="& PaginaActual-1& ">10 Anteriores</A>&nbsp;&nbsp;&nbsp;")

Pero me da el siguiente error:

No coinciden los tipos rs (que no lo entiendo)
  #9 (permalink)  
Antiguo 23/02/2006, 05:53
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 23 años, 2 meses
Puntos: 2
el ultimo error te sale porque cierras el objeto y despues intentas volver a utilizarlo

rs.Close
oConn.Close
set rs=nothing
set oConn=nothing

Response.Write("<A HREF=verasi3.asp?nivel="&rs("tipoCurso")&"& curso="&rs("curso")&" &pagina="& PaginaActual-1& ">10 Anteriores</A>&nbsp;&nbsp;&nbsp;")
%>

debes primero hacer el response y luego cerrar el objeto
  #10 (permalink)  
Antiguo 23/02/2006, 08:07
 
Fecha de Ingreso: octubre-2003
Mensajes: 184
Antigüedad: 21 años, 6 meses
Puntos: 0
Sigue sin salir, he hecho la modificacion que me has dicho y se repite el fallo de los dos caso anteriores.
  #11 (permalink)  
Antiguo 23/02/2006, 11:03
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Código:
Response.Write("<A HREF=verasi3.asp?nivel="&nivel&"&_curso="&curso&"_&pagina="& PaginaActual-1& ">10 Anteriores</A>&nbsp;&nbsp;&nbsp;")
Será por los espacios (_) que tenés allí?
__________________
...___...
  #12 (permalink)  
Antiguo 23/02/2006, 11:42
 
Fecha de Ingreso: octubre-2003
Mensajes: 184
Antigüedad: 21 años, 6 meses
Puntos: 0
pues tampoco es eso. Ya no se que probar. En principio cuando vi que solo me salia 'Educacion', en lugar de 'Educacion primaria', pense que seria por la longitud del campo de la base de datos, pero tampoco es por eso porque ya lo he cambiado y sigue saliendo lo mismo.
  #13 (permalink)  
Antiguo 23/02/2006, 12:21
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 23 años, 2 meses
Puntos: 2
segun lo que veo esta bien hecho el link, como lo tienes originalmente

Código:
Response.Write("<A HREF=verasi3.asp?nivel="&nivel&"& curso="&curso&" &pagina="& PaginaActual-1& ">10 Anteriores</A>&nbsp;&nbsp;&nbsp;")
prueba a hacer un
response.write "nivel="&nivel&"<br>"
response.write "curso="&curso

inmediatamente despues de recibirlas. para ver su valor
  #14 (permalink)  
Antiguo 24/02/2006, 02:54
 
Fecha de Ingreso: octubre-2003
Mensajes: 184
Antigüedad: 21 años, 6 meses
Puntos: 0
Al hacer lo que me has dicho me da lo que me tiene que dar, 'educacion primaria'. Pero cuando lo trato al principio de la pagina, en lugar de 'educacion primaria' sigue saliendo 'educacion'
  #15 (permalink)  
Antiguo 24/02/2006, 10:26
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
hacele un Server.URLEncode(nivel) y Server.URLEncode(curso)
__________________
...___...
  #16 (permalink)  
Antiguo 26/02/2006, 11:20
 
Fecha de Ingreso: octubre-2003
Mensajes: 184
Antigüedad: 21 años, 6 meses
Puntos: 0
Muchas gracias, alZuwaga, ya sale todo como debe ser.

Por que antes no me salia?
  #17 (permalink)  
Antiguo 26/02/2006, 20:22
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
será porque no le colocabas las comlillas al HREF?
Igual colocáselas, es lo ideal
__________________
...___...
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 21:02.