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

Distribución de respuesta de la bd

Estas en el tema de Distribución de respuesta de la bd en el foro de ASP Clásico en Foros del Web. Hola, tengo una duda que llevo dias buscando a ver como puedo hacer, pero con mis limitados conocimientos de programación no puedo resolverlo; mi cuestión ...
  #1 (permalink)  
Antiguo 30/01/2006, 10:16
 
Fecha de Ingreso: noviembre-2005
Mensajes: 62
Antigüedad: 18 años, 7 meses
Puntos: 0
Distribución de respuesta de la bd

Hola, tengo una duda que llevo dias buscando a ver como puedo hacer, pero con mis limitados conocimientos de programación no puedo resolverlo; mi cuestión es la siguiente. Hago una lectura de datos de una bd, y bien sé hacerlo normal asi en una columna: ejemplo normal, pero necesito escribirlos en tres columnas y que me ponga en tantas filas proporcionalmente a la cantidad de datos que deba dar como resultado, el objetivo es asi: objetivo; y no sé. A ver si alguien me puede hechar un cable que estoy un poco perdido.muchas gracias y un saludoo!
  #2 (permalink)  
Antiguo 30/01/2006, 11:01
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 22 años, 4 meses
Puntos: 2
creo que deberia ser mas o menos asi:

Código:
 
z= 4
response.write "<table border=""1"">"
do while not rs.eof
    response.write "<tr>"
    for j=1 to z
        response.write "<td>"
        response.write rs("dato")
        response.write "</td>"
        if rs.eof then 
           exit for
        else
            rs.movenext
        end if
    next
    response.write "</tr>"
loop
%>
lo probe pero me tira un error de EOF cuando lo uso con 3 columnas. estoy revisando que pueda ser
__________________
Manual de ASP Avanzado ;-)
  #3 (permalink)  
Antiguo 30/01/2006, 11:26
 
Fecha de Ingreso: noviembre-2005
Mensajes: 62
Antigüedad: 18 años, 7 meses
Puntos: 0
muchas gracias por molestarte ElAprendiz. voy a probarlo yo tambien a ver si me da el error.
  #4 (permalink)  
Antiguo 31/01/2006, 01:56
 
Fecha de Ingreso: noviembre-2005
Mensajes: 62
Antigüedad: 18 años, 7 meses
Puntos: 0
no logro hacer que funcione, porque puede ser? será una tonteria pero no sé como debo hacerlo. gracias
__________________
www.llamaracubabarato.com
  #5 (permalink)  
Antiguo 31/01/2006, 03:26
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 6 meses
Puntos: 144
Échale un vistado a este post, a ver que sacas en claro: http://www.forosdelweb.com/showthrea...light=columnas
  #6 (permalink)  
Antiguo 31/01/2006, 09:21
 
Fecha de Ingreso: noviembre-2005
Mensajes: 62
Antigüedad: 18 años, 7 meses
Puntos: 0
Muchas gracias 3pies y ElAprendiz, lo he conseguido al final con el enlace que me has dado. un saludo
__________________
www.llamaracubabarato.com
  #7 (permalink)  
Antiguo 01/02/2006, 01:47
 
Fecha de Ingreso: noviembre-2005
Mensajes: 62
Antigüedad: 18 años, 7 meses
Puntos: 0
3pies en este codigo que pusiste;"contador" al principio lo pones a 0, pero no pones a que es igual "totalcolaboradores" ? qué se le debe poner?

Código:
<%
'Si no está vacía la consulta
if not rs.EOF then
	contador=0
	Do While not rs.EOF
		contador=contador+1
		%>
		<td width="50%" align="center" valign="top"><b><%=RS("nombre")%></b>
		<%end if%>
		</td>
		<%if contador mod 2=0 and totalcolaboradores>contador then%>
			</tr><tr><td colspan="2">&nbsp;</td></tr><tr><td colspan="2">&nbsp;</td></tr><tr>
		<%elseif contador mod 2<>0 and totalcolaboradores=contador then%>
			<td width="50%" align="center" valign="top">&nbsp;</td>
		<%end if
		'Nos movemos al siguiente registro
		rs.MoveNext
	Loop
'Si no hay colaboradores
else
	response.write "<td colspan=""2"" valign=""top""><div align=""justify"">En estos momentos, y dado que hace poco tiempo que estamos en la red, no disponemos de colaboradores.</div></td>"
end if
'Cerramos y limpiamos los objetos
rs.close
oConn.close
set rs=nothing
set oConn=nothing
%>
gracias y un saludo
__________________
www.llamaracubabarato.com
  #8 (permalink)  
Antiguo 01/02/2006, 02:34
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 6 meses
Puntos: 144
Bueno, eso de "totalcolaboradores" es de un ejemplo, y no es ni más ni menos, que el total de registros devueltos por la consulta (un RecordCount), o bien como usé yo para ese ejemplo:
Código:
SQL="SELECT COUNT(id) AS totalcolaboradores FROM ..."
rs.open SQL,oConn, 3, 1
'Pasamos el dato a una variable
totalcolaboradores=rs("totalcolaboradores")
...
Simplemente debes meter en una variable (totalregistros, total, registrostotales, o como quieras llamarla), el número total de registros devueltos por la consulta a tu base de datos.
  #9 (permalink)  
Antiguo 01/02/2006, 06:00
 
Fecha de Ingreso: noviembre-2005
Mensajes: 62
Antigüedad: 18 años, 7 meses
Puntos: 0
ok 3pies, el codigo esta bien pero estoy intentando llevarlo a como lo deseaba que es que de los resultados de arriba a abajo y luego empieze la siguiente columna, entonces se me ha ocurrido que del total de registros que hay, lo divida entre tres, que son las columnas y vaya dando los datos hasta que de eltotal/3 y pase a la siguiente; lo que he hecho es esto pero no sé si esta bien del todo:

Código:
 <%
'Si no está vacía la consulta
if not objRS.EOF then
	contador=0
	Totalventa=objRS2("Totalventa")
	Division=objRS2("Totalventa")/3
	Do While not objRS.EOF
		contador=contador+1
		%>
		<b><%=objRS("marca")%></b><br>
		<%if contador mod Division=0 and Totalventa>contador then%>
			</td><td valign="top">
		<%elseif contador mod Division<>0 and Totalventa=contador then%>
			<td width="50%" align="center" valign="top">&nbsp;</td>
		<%end if
		'Nos movemos al siguiente registro
		objRS.MoveNext
	Loop
'Si no hay colaboradores
else
	response.write "<td colspan=""2"" valign=""top""><div align=""justify"">no hay</div></td>"
end if
'Cerramos y limpiamos los objetos
objRS.close
oConn.close
set objRS=nothing
set oConn=nothing
End if
%>
el Division=objRS2("Totalventa")/3 me divide entre tres pero no sé si esta bien puesto como deberia ser la division y que me de un número entero, ya que no me lo da. un saludo.
__________________
www.llamaracubabarato.com
  #10 (permalink)  
Antiguo 01/02/2006, 06:33
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 6 meses
Puntos: 144
Para obtener el entero:
Division=CInt(objRS2("Totalventa")/3)
  #11 (permalink)  
Antiguo 01/02/2006, 09:43
 
Fecha de Ingreso: noviembre-2005
Mensajes: 62
Antigüedad: 18 años, 7 meses
Puntos: 0
Gracias por todo 3pies!
__________________
www.llamaracubabarato.com
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 01:38.