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

visualizar campos de una tabla

Estas en el tema de visualizar campos de una tabla en el foro de ASP Clásico en Foros del Web. Hola. Tengo una tabla de la que quiero visualizar una serie de campos varias veces. Para ello utilizo un while(hasta q se acabe el select). ...
  #1 (permalink)  
Antiguo 16/04/2008, 04:58
 
Fecha de Ingreso: febrero-2008
Mensajes: 25
Antigüedad: 16 años, 2 meses
Puntos: 0
visualizar campos de una tabla

Hola.

Tengo una tabla de la que quiero visualizar una serie de campos varias veces. Para ello utilizo un while(hasta q se acabe el select).
Lo que quiero es que solo se visualicen los ultimos 4 por fecha.

El codigo que utilizo es:

sql2= "select titulo,tema,fecha,foto from actividades_area order by fecha desc"
Set rs2 = con.Execute(sql2)

j=1

do while not rs2.eof
if j<5 then
response.Write("<table width='90%' align='center'>")
response.Write("<tr><td class='texto_responsables'><table width='100%'><tr><td align='left' valign='top'>"&rs2("titulo")&"</td><td align='right' valign='top'>"&rs2("fecha")&"</td></tr></table></td></tr>")
response.Write("<tr><td><table width='100%'><tr><td align='left' valign='top'><img src='imagenes/"&rs2("foto")&"' alt='' name='foto' width='130' height='80' id='foto'/></td><td width='3%'></td><td align='left' valign='top' class='texto_actividad'>"&rs2("tema")&"</td></tr></table></td></tr>")

response.Write("<tr><td colspan='2'>")
response.Write("<hr>")
response.Write("</td></tr></table>")
rs2.movenext
j=j+1
end if
loop

lo que me pasa es que me tarda muchisimo en cargar la pagina y al final me da el error:
Páginas Active Server error 'ASP 0113'

Tiempo de espera agotado para la secuencia de comandos


Que hago mal????

Gracias.
  #2 (permalink)  
Antiguo 16/04/2008, 05:41
 
Fecha de Ingreso: abril-2008
Mensajes: 51
Antigüedad: 16 años, 1 mes
Puntos: 1
Re: visualizar campos de una tabla

Yo creo que al haber mas campos de los que quieres mostrar se te esta saliendo del limite, es decir te intenta mostrar las fotos, pero al llegar al limite de 5 se para, yo probaria a ponerle un else end loop , o algo así.

Suerte!
  #3 (permalink)  
Antiguo 16/04/2008, 05:47
 
Fecha de Ingreso: abril-2008
Mensajes: 51
Antigüedad: 16 años, 1 mes
Puntos: 1
Re: visualizar campos de una tabla

Ahora que me he dado cuenta, prueba a sacar del while lo siguiente:


response.Write("<table width='90%' align='center'>")

y despues pon el while con todo lo demás


Por último cierra la tabla fuera del while loop.


Ya me cuentas saludos!
  #4 (permalink)  
Antiguo 16/04/2008, 07:21
 
Fecha de Ingreso: febrero-2008
Mensajes: 25
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: visualizar campos de una tabla

Hola.

He probado esto ultimo que me cuentas y sigue igual.
Que quieres decir en el primer mensaje que has puesto???

Gracias.
  #5 (permalink)  
Antiguo 16/04/2008, 07:29
 
Fecha de Ingreso: abril-2008
Mensajes: 2
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: visualizar campos de una tabla

hola chicos como estan? no se si alguno me puede explicar pero comienzo diciendoles que no se nada nada de asp...necesito hacer una aplicacion que permita a los usuarios registrarse para ingresar y no tengo ni idea de como hacerlo en asp...y menos se cono realizar la conexion a la base de datos...sos auxilio
  #6 (permalink)  
Antiguo 16/04/2008, 07:32
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Re: visualizar campos de una tabla

A ver, el problema del error es por esto:

Código:
do while not rs2.eof
  if j<5 then
     rs2.movenext
     j=j+1
  end if
loop
i=1 -> Entra (hace moveNext e incrementas i ahora es 2)
i=2 -> Entra (hace moveNext e incrementas i ahora es 3)
i=3 -> Entra (hace moveNext e incrementas i ahora es 4)
i=4 -> Entra (hace moveNext e incrementas i ahora es 5)
ya no entra, ya no haces moveNext y tu programa queda en un ciclo infinito (por eso el error) por que nunca alcanzas el EOF

Eso se llama prueba de escritorio
  #7 (permalink)  
Antiguo 16/04/2008, 07:41
 
Fecha de Ingreso: septiembre-2005
Mensajes: 135
Antigüedad: 18 años, 7 meses
Puntos: 1
Re: visualizar campos de una tabla

Tambien tienes la posibilidad de utilizar la siguiente consulta

sql2= "select top 4 titulo,tema,fecha,foto from actividades_area order by fecha desc"

De esta forma no tienes que preguntar por la variable j, sino que directamente recorres el recordset.

Un saludo.
  #8 (permalink)  
Antiguo 16/04/2008, 08:58
 
Fecha de Ingreso: febrero-2008
Mensajes: 25
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: visualizar campos de una tabla

hola lebennin.

poniendo lo que tu has dicho me sale este error:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[MySQL][ODBC 3.51 Driver][mysqld-4.1.20]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '4 titulo,tema,fecha,foto from actividades_area order by fecha desc' at line 1
  #9 (permalink)  
Antiguo 16/04/2008, 09:19
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Re: visualizar campos de una tabla

El TOP 4 no funciona por que él quiere los 4 primeros de cada fecha, no solo los 4 primeros de la consulta (aparte que en MySQL no es TOP, sino LIMIT).

Necesita agruparlos u ordenarlos por fecha y luego leer hasta que la fecha_anterior sea diferente a la fecha actual o mientras el número de registros leídos sea menor o igual a 4.

El algoritmo simple y sin optimizar sería algo como esto:

Código:
rs.open "query", conn
fecha_anterior = rs("fecha")
Cnt=0
while not rs.eof 
   if Cnt <= 4 and fecha_anterior = rs("fecha") Then 
	    response.write "lo que ocupes"
	 Else
	    cnt = cnt + 1 
	 End if
   rs.movenext
	 if Not rs.eof Then 
      if Fecha_Anterior <> Fecha Then
         fecha_anterior = rs("fecha")     
         Cnt=0
	    End if
	 End if 
wend
La idea es esa
  #10 (permalink)  
Antiguo 17/04/2008, 02:02
 
Fecha de Ingreso: febrero-2008
Mensajes: 25
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: visualizar campos de una tabla

Eso no es lo que quiero yo. Haber si me explico mejor.
Tengo por ejemplo 20 actividades. Lo de la fecha mas que nada es para tenerlos ordenados. Quiero sacar de esos 20 solo 4 (los 4 mas cercanos a la fecha actual).

Por eso no entiendo que metas el campo fecha en las comparaciones, haciendo un order by en la select ya me lo ordena y solo quiero coger las 4 primeras filas de la select.

Gracias.
  #11 (permalink)  
Antiguo 17/04/2008, 02:10
 
Fecha de Ingreso: febrero-2008
Mensajes: 25
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: visualizar campos de una tabla

La idea no sería algo asi, me saca las 4 filas solo que al final me pone:
Microsoft OLE DB Provider for ODBC Drivers error '80040e24'

El conjunto de filas no admite recuperación hacia atrás.



j=1

do while not rs2.eof
if j>4 then
rs2.movelast
else
response.Write("<table width='90%' align='center'>")
response.Write("<tr><td class='texto_responsables'><table width='100%'><tr><td align='left' valign='top'>"&rs2("titulo")&"</td><td align='right' valign='top'>"&rs2("fecha")&"</td></tr></table></td></tr>")
response.Write("<tr><td><table width='100%'><tr><td align='left' valign='top'><img src='imagenes/"&rs2("foto")&"' alt='' name='foto' width='130' height='80' id='foto'/></td><td width='3%'></td><td align='left' valign='top' class='texto_actividad'>"&rs2("tema")&"</td></tr></table></td></tr>")

response.Write("<tr><td colspan='2'>")
response.Write("<hr>")
response.Write("</td></tr></table>")
j=j+1
end if
rs2.movenext

loop
  #12 (permalink)  
Antiguo 17/04/2008, 03:33
Avatar de i_e_s27  
Fecha de Ingreso: marzo-2008
Ubicación: En mi casa
Mensajes: 208
Antigüedad: 16 años, 1 mes
Puntos: 5
Re: visualizar campos de una tabla

En ese ultimo codigo que posteaste... y si en vez de rs2.movelast pones un Exit Do?
  #13 (permalink)  
Antiguo 17/04/2008, 03:39
 
Fecha de Ingreso: febrero-2008
Mensajes: 25
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: visualizar campos de una tabla

Ya esta.

Muchas gracias a tod@s.
  #14 (permalink)  
Antiguo 17/04/2008, 07:11
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Re: visualizar campos de una tabla

Que bueno que ya salió, solo como consejo para futuras consultas, hay que poner atención a los mensajes donde solicitas ayuda ya que si están redactados de forma incorrecta y/o imprecisa obtendrás soluciones que no te son útiles:
Cita:
...Lo que quiero es que solo se visualicen los ultimos 4 por fecha
Saludos y hasta la próxima
  #15 (permalink)  
Antiguo 17/04/2008, 07:26
Avatar de i_e_s27  
Fecha de Ingreso: marzo-2008
Ubicación: En mi casa
Mensajes: 208
Antigüedad: 16 años, 1 mes
Puntos: 5
Re: visualizar campos de una tabla

Jajaja, capaz que el tipo queria saber las dos cosas: Los ultimos 4 y los primeros 4, por eso abrio dos post jajaja
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 10:22.