Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/06/2009, 07:25
joseantonim
 
Fecha de Ingreso: junio-2009
Mensajes: 14
Antigüedad: 15 años, 10 meses
Puntos: 0
Como delimitar el tamaño de una consulta

Mi problema es el siguiente, tengo una consulta de noticias, en la que al realizarla desconzco el tamaño que tienen las mismas, ya que pueden ser mas o menos extensas.

Realice un codigo para ller las noticias, y presentarlas en la Web, pero el resultado es que al haber muhcas noticias,y no limitar el número se salian del espacio diseñado para ello, luego las he limitado con el elemento for, para que solo muestre un número de registros limitado, pero aún me sucede que dependiendo del tamaño de las noticias (texto escrito en la tabla de acces) o bien me sobra espacio para una noticia más, o bien se me salen por abajo por que alguien se alargo demasiado en el texto.

¿Puedo mediante algún control, conocer el número de lineas que he ocupado, y de ese modo solicitar que se salga del bucle para no mostrar más noticias?

Os paso el codigo que he usado en ambas ocasiones por si ayuda en algo, ya os digo que soy nuevo en asp, y poco a poco voy aprendiendo pero aveces me atasco.

Gracias de antemano.

Codigo con el control EOF, me da todas las noticias que hay en la tabla, y se me sale por abajo del diseño de la página.
Código asp:
Ver original
  1. <&#37;
  2.     Dim oConn, RS
  3.     'conectamos a la tabla.
  4.     Set oConn = Server.CreateObject ("ADODB.Connection")
  5.     oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("basedatos.mdb")
  6.     'Abrmios el RecordSet (accedemos a los datos de la BD).
  7.     sql = "SELECT * FROM noticias"
  8.     Set RS = Server.CreateObject ("ADODB.RecordSet")
  9.     RS.Open sql, oConn
  10.     'Mostramos los campos hasta que nuestro RS no termine.
  11.     'Cuando termine... sale del bulcle automaticamente.
  12.     Do While Not RS.EOF
  13.     Dim links
  14.     links = RS("Link")
  15.         Response.Write ("<p align= left>")& RS("Portada")
  16.         Response.Write ("<p align= right><a href="&links&">Mas información</a>")
  17.         Response.Write ("<p align=center><font size=5 color=#808080><b>...................................................</b></font></p>")            
  18.     'MoveNext nos movera al siguiente registro de la tabla. A la siguiete fila.
  19.     RS.MoveNext
  20.     Loop
  21.     'primero cerramos los objetos y luego los limpiamos.
  22.     RS.Close
  23.     oConn.Close
  24.     Set RS = nothing
  25.     Set oConn = nothing
  26. %>

Codigo con el bucle For, me arregla algo pero no limita por tamaño que es lo que necesito.

Código asp:
Ver original
  1. <%
  2.     'conectamos a la tabla.
  3.     Set oConn = Server.CreateObject ("ADODB.Connection")
  4.     oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("basedatos.mdb")
  5.     'Abrmios el RecordSet (accedemos a los datos de la BD).
  6.     sql = "SELECT * FROM noticias ORDER BY Id DESC"
  7.     Set RS = Server.CreateObject ("ADODB.RecordSet")
  8.     RS.Open sql, oConn
  9.     'Mostramos los campos hasta que nuestro RS no termine.
  10.     'Cuando termine... sale del bulcle automaticamente.
  11.     cuen = 0
  12.     For cuen = 0 To 5 Step 1
  13.         links = RS("Link")
  14.         Response.Write ("<p align= left>")& RS("Portada")
  15.         Response.Write ("<p align= right><a href="&links&">Mas información</a>")
  16.         Response.Write ("<p align=center><font size=5 color=#808080><b>...................................................</b></font></p>")            
  17.         'MoveNext nos movera al siguiente registro de la tabla. A la siguiete fila.
  18.         RS.MoveNext
  19.     Next
  20.     'primero cerramos los objetos y luego los limpiamos.
  21.     RS.Close
  22.     oConn.Close
  23.     Set RS = nothing
  24.     Set oConn = nothing
  25. %>
Bueno lo dicho gracias por la colaboración.

Última edición por joseantonim; 27/06/2009 a las 13:30