Los Foros de ASPTutor.com
Home | Perfil | Registrarse | Temas Activos | Miembros | Buscar | FAQ
Usuario:
Password:
 Todos los Foros
 ADO
 Illo, necesito ayuda...que son 5 minutos solamente
 Foro Bloqueado  Tema Bloqueado


Autor Temas
mailrp
Starting Member


45 Posts
Mensajes - 30 Jul 2002 :  22:21:16  Ver Perfil  Enviar Email
He creado una base de datos en access 2000 llamada "PERSONA.MDB".
En ella he creado una tabla llamada "TABLA1"
La tabla contiene tres campos "ID": autonumerico y clave primaria, "NOMBRE":texto , "APELLIDO":texto
He rellenado la tabla con cinco registros...
id nombre apellido
1 ramon perez
2 rocio sanchez
3 victor flores
4 arcadio tovar
5 carlos reina

Ahora he creado un origen ODBC que apunte a mi base de datos "PERSONA.MDB" y lo he llamado "ODBCPERSONA"
Esto se hace en inicio, configuracion, panel de control, fuentes de datos odbc, dsn del sistema, agregar,
seleccionar driver ms access y la base de datos "c:\persona.mdb"...

A continuacion he creado en ASP dos consultas, y las he guardado en c:\inetpub\wwwwroot.

Codigos de las dos consultas ASP:


***************************** CONSULTAUNO.ASP ********************************
<HTML>
<BODY>
<%
If IsObject(Session("ODBCPERSONA_conn")) Then
Set conn = Session("ODBCPERSONA_conn")
Else
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "ODBCPERSONA","",""
Set Session("ODBCPERSONA_conn") = conn
End If

If IsObject(Session("Consulta1_rs")) Then
Set rs = Session("Consulta1_rs")
Else
sql = "SELECT * FROM Tabla1 "
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn, 3, 3
If rs.eof Then
rs.AddNew
End If
Set Session("Consulta1_rs") = rs
End If
%>
<TABLE >
<THEAD>
<TR>
<TH>id</TH> <TH >nombre</TH> <TH >apellido</TH>
</TR>
</THEAD>
<TBODY>
<%
On Error Resume Next
rs.MoveFirst
do while Not rs.eof
%>
<TR>
<TD><%=Server.HTMLEncode(rs.Fields("id").Value)%><BR></TD>
<TD><%=Server.HTMLEncode(rs.Fields("nombre").Value)%><BR></TD>
<TD><%=Server.HTMLEncode(rs.Fields("apellido").Value)%><BR></TD>
</TR>
<%
rs.MoveNext
loop
%>
</TBODY>
</TABLE>
</BODY>
</HTML>
************************************************************************************

***************************** CONSULTADOS.ASP ********************************
<HTML>
<BODY>
<%
If IsObject(Session("ODBCPERSONA_conn")) Then
Set conn = Session("ODBCPERSONA_conn")
Else
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "ODBCPERSONA","",""
Set Session("ODBCPERSONA_conn") = conn
End If

sql = "SELECT * FROM Tabla1"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn, 3, 3
If rs.eof Then
rs.AddNew
End If
Set Session("Consulta1_rs") = rs
%>
<TABLE>
<THEAD>
<TR>
<TH >id</TH> <TH >nombre</TH> <TH >apellido</TH>
</TR>
</THEAD>
<TBODY>
<TR>
<TD><%=Server.HTMLEncode(rs.Fields("id").Value)%><BR></TD>
<TD><%=Server.HTMLEncode(rs.Fields("nombre").Value)%><BR></TD>
<TD><%=Server.HTMLEncode(rs.Fields("apellido").Value)%><BR></TD>
</TR>
</TBODY>
</TABLE>
</BODY>
</HTML>
************************************************************************************

En la consultauno se muestra los cinco registros, por que no una tabla?? ahora, no la necesito.

En la consultados se muestra unicamente el primer registro... que pasa con los otros cuatro?,
pues que he quitado el bucle while.... loop, y el rs.movenext.

Aqui viene mi problema:
Lo que quiero es poner en la CONSULTADOS.ASP un par de botones: ANTERIOR Y SIGUIENTE, de modo que
al estar uno en "id 2 nombre rocio" y pulsar SIGUIENTE se vaya a "id 3 nombre victor", y si
pulso en ANTERIOR se vaya a "id 1 nombre ramon"

Tal vez se una tonteria la solucion, pero me esta dando dolores de cabeza, he probado con un
formulario, pero no lo hago funcionar pues no domino los formularios. Lo he intentado con
"consultados.asp?id=3", y tampoco, es obvio, tampoco lo domino... Y he intentado una variable
global con session("pagina") guardando el registro que se muestra, pero fallo en los conceptos
y al final me lio mas que la pata de un romano...

Lo que yo quiero es salir del paso, y hacerlo funcionar YA!!, no lo necesito para mañana, ni
para hoy, sino para ayer... Y prometo que este fin de semana le echo unas pocas de horas, pero
ahora mismo, es que no puedo.. sino no estaria haciendo el imbecil con estas preguntas.

Centraros en consultados.asp, a ver si sois capaces de hacer que vaya de un registro a otro pulsando
un boton o un enlace... o algo.

EL PROBLEMA SE LLAMA PAGINACION.

Pegadme el codigo, por favor.

Mi email es MAILRP@IESPANA.ES

GGGRRRRAAAAACCCCCIIIIAAAASSSS

buho_nero
Moderator

España
1316 Posts
Posted - 31 Jul 2002 :  10:56:43  Ver perfil  Enviar e-mail
Vale tú ganas, paginación entonces.

La paginación es una forma de cargar un recordset en bloques con un tamaño en registros que se puede controlar. El objeto recordset tiene algunas propiedades que nos facilitan mucho las cosas (digo esto porque la paginación se puede emular, ya sea afinando las consultas o con un GetRows...)
Las propiedades más interesantes (a partir de ahora "rst" será un objeto recordset):

rst.PageSize -> tamaño de registros por página
rst.AbsolutePage -> número de la página actual
rst.PageCount -> número de páginas totales

El truco está en llevar una variable con el número de página que quieres ver:

<%
pagina = request(pagina)
if pagina = "" then
pagina = 1
else
pagina = cint(pagina)
end if

tamanho = 5 'cinco registros por página
rst.PageSize = tamanho
rst.AbsolutePage = pagina

...
contador = 0
while not rst.eof and contador<tamanho
...
rst.movenext
contador = contador + 1
wend
%>

Los botones de paginación recargan la página pero variando el valor de la variable:
anterior -> pagina.asp?pagina=<%= pagina-1%>
posterior -> pagina.asp?pagina=<%= pagina+1%>

Ten cuidado, no muestres el botón "Anterior" en la primera página (si pagina = 1) ni el "Posterior" en la última (si pagina = rst.PageCount)

Es el ejemplo más simple que se me ha ocurrido, se puede mejorar mucho. Te sigo referenciando a los artículos.
Suerte.

Inicio Pagina

mailrp
Starting Member


45 Posts
Posted - 01 Aug 2002 :  03:00:03  Ver perfil  Enviar e-mail
oye, gracias.
en el foro asp puedes ver el codigo final.

Inicio Pagina

   
 Foro Bloqueado  Tema Bloqueado
Ir a:
Los Foros de ASPTutor.com Los Foros de ASPTutor.com
Ir al principio de la Página

 Imprimir Tema
 

Descargas de manuales¦ Ejemplos de código ¦ Artículos mas visitados ¦ Envía tu articulo ¦ Foros ¦
  Libro de visitas ¦Crea un enlace con ASPTutor 
 

    © 2001-Hasta hoy  Pedro Rufo Martín  contactar