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

Paginar consulta a BD

Estas en el tema de Paginar consulta a BD en el foro de ASP Clásico en Foros del Web. Hello people. Quise paginar los resultados de una consulta a una base de datos, pero cuando lo hago, me devuelve todos los campos, pero con ...
  #1 (permalink)  
Antiguo 06/01/2006, 09:36
 
Fecha de Ingreso: abril-2002
Mensajes: 83
Antigüedad: 23 años
Puntos: 1
Paginar consulta a BD

Hello people. Quise paginar los resultados de una consulta a una base de datos, pero cuando lo hago, me devuelve todos los campos, pero con el mismo nombre.

O sea, si tengo 14 registros, me devuelve 14 registros, pero no con las 14 informaciones diferentes, sino con la informacion del primer registro, 14 veces.. Este es el codigo que uso, echenle un vistazo por favor.

<%
sSQL="SELECT * FROM infousuarios"
'esta sentencia SQL puede ser creada a partir de un buscador como el que hemos visto en otro reportaje
'y almacenada en una session para emplearla sucesivas veces en el script: session("ssql")=ssql

'actualizamos numero de pagina
If Request.QueryString("file")<>"" then
Session("f")=Request.QueryString("file")
Else
Session("f")=1
End If

'constantes ADO VBScript
Const adCmdText = &H0001
Const adOpenStatic = 3

Set Conn = Server.CreateObject("ADODB.Connection")
strconn = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("usuarios.mdb")
Set Command = Server.CreateObject("ADODB.Command")
Set RS =Server.CreateObject("ADODB.RecordSet")
Conn.Open strconn
RS.Open sSQL,Conn,adopenstatic,adcmdtext

IF NOT RS.EOF THEN
user = RS( "user" )
nombre = RS( "nombre" )
apellido = RS( "apellido" )
ciudad = RS( "ciudad" )
pais = RS( "pais" )
email = RS( "email" )
usuario = RS( "usuario" )
END IF

'resultados por pagina a elegir arbitrariamente
num_registros = 8

'Dimensionamos las paginas y determinamos la pagina actual
RS.PageSize=num_registros
RS.AbsolutePage=Session("f")
%>

<table width="500" border="0" cellspacing="0" cellpadding="0">
<%
registros_mostrados = 0
While (Not RS.eof And registros_mostrados < num_registros)
registros_mostrados = registros_mostrados +1
%>
<tr>
<td valign="top"><a href="stats3.asp?stats=usuarios&user=<%=( user )%>" class="titrecetasmes5"><%=( nombre )%><%= (" ")%><%=(

apellido )%></a></td></tr>
<tr>
<td height="6"></td></tr>
<%
rs.MoveNext
Wend
%>
<%
registros_mostrados = 0
While (Not RS.eof And registros_mostrados < num_registros)
registros_mostrados = registros_mostrados +1
%>
<%
RS.MoveNext
Wend
%>
<tr>
<td align="center" valign="top" class="text2">
<%
i=0
While i<RS.PageCount
i=i+1
%>
| <b><a href="stats3.asp?stats=usuarios&file=<%=i%>" class="titrecetasmes4"><%=i%></a></b>
<%
Wend
%>|</td></tr>
</table><%
RS.Close
Conn.Close
%>

Puede alguien ver el error? Gracias por su ayuda

Ed
  #2 (permalink)  
Antiguo 06/01/2006, 09:52
 
Fecha de Ingreso: noviembre-2005
Mensajes: 658
Antigüedad: 19 años, 5 meses
Puntos: 3
El problema es IF NOT RS.EOF THEN.... debes de cambiarlo por
while not(rs.eof)

A este nivel debes de poner un while
  #3 (permalink)  
Antiguo 06/01/2006, 09:55
 
Fecha de Ingreso: abril-2002
Mensajes: 83
Antigüedad: 23 años
Puntos: 1
Vamos a probar entonces...aunque no estoy muy seguro de como usar el while ahi, pero lo intentaré...
  #4 (permalink)  
Antiguo 06/01/2006, 09:57
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
Set Conn = Server.CreateObject("ADODB.Connection")
strconn = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("usuarios.mdb")
Set Command = Server.CreateObject("ADODB.Command")
Set RS =Server.CreateObject("ADODB.RecordSet")
Conn.Open strconn
RS.Open sSQL,Conn,adopenstatic,adcmdtext

'quita este if

'resultados por pagina a elegir arbitrariamente
num_registros = 8

'Dimensionamos las paginas y determinamos la pagina actual
RS.PageSize=num_registros
RS.AbsolutePage=Session("f")
%>

<table width="500" border="0" cellspacing="0" cellpadding="0">
<%
registros_mostrados = 0
While (Not RS.eof And registros_mostrados < num_registros)

user = RS( "user" )
nombre = RS( "nombre" )
apellido = RS( "apellido" )
ciudad = RS( "ciudad" )
pais = RS( "pais" )
email = RS( "email" )
usuario = RS( "usuario" )

registros_mostrados = registros_mostrados +1
%>
__________________
JuanRa Pérez
San Salvador, El Salvador
  #5 (permalink)  
Antiguo 06/01/2006, 10:01
 
Fecha de Ingreso: abril-2002
Mensajes: 83
Antigüedad: 23 años
Puntos: 1
Wow, gracias Juan Perez. No se como pero funcionó. Entonces en donde estuvo mi error? Porque tengo 2 paginadores de busqueda mas en mi pagina, y me funcionan con el metodo anterior que tenia.

Sera que como esto no era paginacion de busqueda, sino de consulta, no era igual??
  #6 (permalink)  
Antiguo 06/01/2006, 10:06
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
en el if estabas asignando los valores del primer registro del recordset a tus variables

y cuando hacias el do while

tomaba estos valores, nunca los cambiabas

al ponerlo en el do while

si lo haces le asignas nuevos valores
__________________
JuanRa Pérez
San Salvador, El Salvador
  #7 (permalink)  
Antiguo 06/01/2006, 10:18
 
Fecha de Ingreso: noviembre-2004
Mensajes: 371
Antigüedad: 20 años, 5 meses
Puntos: 0
si kieres puedes obserbar mas abajo ahi un topico k se llama paginando un recordset es lo mismo tiene la misma funcionalidad pero te lista los registros en columnas de 3 esta en la misma pagina.
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 19:32.