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

10 registros aleatorios

Estas en el tema de 10 registros aleatorios en el foro de ASP Clásico en Foros del Web. hola estoy intentando implementar esto http://www.forosdelweb.com/f15/mostr...licado-481557/ pero me da un error Cita: ADODB.Recordset (0x800A0E79) La operación no está permitida si el objeto está abierto. /hotelenbaqueira/restaurantes.asp, ...
 
Antiguo 11/11/2009, 12:48
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 24 años, 2 meses
Puntos: 8
10 registros aleatorios

hola estoy intentando implementar esto

http://www.forosdelweb.com/f15/mostr...licado-481557/

pero me da un error

Cita:
ADODB.Recordset (0x800A0E79)
La operación no está permitida si el objeto está abierto.
/hotelenbaqueira/restaurantes.asp, línea 166

alguien sabe?
 
Antiguo 11/11/2009, 13:00
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 24 años, 2 meses
Puntos: 8
Respuesta: 10 registros aleatorios

ya casi lo tengo

Código PHP:
<%  Dim connrst

Set rst
Server.CreateObject("ADODB.Recordset")
rst.ActiveConnection MM_hotel_STRING
rst
.Source "SELECT * FROM restaurantes where destacado ='1'"
rst.CursorType 2
rst
.CursorLocation 2
rst
.LockType 2
rst
.Open()



if 
not rst.EOF then
    rst
.moveFirst()
    for 
i=0 to 9
    a 
Int((rst.recordCount) * Rnd)
    
     
Te posiciones en el registro aleatorio
    rst
.move(a)%>
                <
li><a href="#primero"><%=rst("nombre")%> - <%=rst("localidad")%></a></li>
<% 
next 
end 
if
rst.close()
set rst nothing 
%> 

pero me sale el error

Código HTML:
ADODB.Field (0x80020009)
El valor de BOF o EOF es True, o el actual registro se eliminó; la operación solicitada requiere un registro actual.
 
Antiguo 11/11/2009, 13:33
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 25 años, 3 meses
Puntos: 535
Respuesta: 10 registros aleatorios

Probá colocando rst.moveFirst() justo en la línea anterior a rst.move(a)
__________________
...___...
 
Antiguo 11/11/2009, 13:57
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 24 años, 2 meses
Puntos: 8
Respuesta: 10 registros aleatorios

me sale el mismo error

y si canvio

esto

Código PHP:
 for i=0 to 9
    a 
Int((rst.recordCount) * Rnd
por esto

Código PHP:
 for i=0 to rst.recordCount
    a 
Int((rst.recordCount) * Rnd
no me escupe ningun error
pero no me pinta nada es como si no hiciera el for
 
Antiguo 11/11/2009, 14:39
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 24 años, 2 meses
Puntos: 8
Respuesta: 10 registros aleatorios

he econtrado esto que me devuelve un solo registro

Código PHP:
<%
dim rs_restaurantes_dest
dim rs_restaurantes_dest_numRows

Set rs_restaurantes_dest 
Server.CreateObject("ADODB.Recordset")
rs_restaurantes_dest.ActiveConnection MM_hotel_STRING
rs_restaurantes_dest
.Source "SELECT * FROM restaurantes WHERE destacado= 1"
rs_restaurantes_dest.CursorType 3
rs_restaurantes_dest
.CursorLocation 2
rs_restaurantes_dest
.LockType 1
rs_restaurantes_dest
.Open()

'rs_restaurantes_dest_numRows = 0
if Not rs_restaurantes_dest.EOF then
'
rs_restaurantes_dest_mostra "si"
dim rndmax_promo
rndmax_promo 
cint(rs_restaurantes_dest.recordcount)


rs_restaurantes_dest.movefirst

dim rndnumber_promo

randomize timer

rndnumber_promo 
int(rnd rndmax_promo)

rs_restaurantes_dest.move rndnumber_promo
%>

<%=
rs_restaurantes_dest("nombre")%><br />
<%
' carry out your action here, with the appropriate recordset index
for example response.redirect(objrs("url")) (requires response.buffer true
 
or response.write("<img src=" objrs("img") & ">")

else
end if%> 

no se si poniendo un for o un while me mostrara 10 o mas registros
 
Antiguo 11/11/2009, 17:38
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 24 años, 5 meses
Puntos: 16
Respuesta: 10 registros aleatorios

bueno, no se que base de datos usas pero si usas MySQL (aconsejable) puedes poner ORDER BY RAND() LIMIT 10 al Select y listo, quedando algo asi:

Select * From TABLA ORDER BY RAND() LIMIT 10
 
Antiguo 11/11/2009, 19:20
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 24 años, 3 meses
Puntos: 146
Respuesta: 10 registros aleatorios

Si a esas vamos si usa Sql server 2005 puede usar esto:

select top 10 * from Tabla order by newid()


PD.
Creo recordar que en access también existe la función rand(), igual con esa se puede hacer algo si esa fuera la "BD" que usa.
 
Antiguo 12/11/2009, 01:11
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 24 años, 2 meses
Puntos: 8
Respuesta: 10 registros aleatorios

uso access
 
Antiguo 12/11/2009, 05:10
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 19 años, 4 meses
Puntos: 126
Respuesta: 10 registros aleatorios

Hola

En este post tienes la solución

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
 
Antiguo 18/11/2009, 12:36
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 24 años, 3 meses
Puntos: 146
Respuesta: 10 registros aleatorios

Para otros usuarios ... continua aquí
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:22.