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, ...
  #1 (permalink)  
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: 23 años, 1 mes
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?
  #2 (permalink)  
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: 23 años, 1 mes
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.
  #3 (permalink)  
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: 24 años, 2 meses
Puntos: 535
Respuesta: 10 registros aleatorios

Probá colocando rst.moveFirst() justo en la línea anterior a rst.move(a)
__________________
...___...
  #4 (permalink)  
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: 23 años, 1 mes
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
  #5 (permalink)  
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: 23 años, 1 mes
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
  #6 (permalink)  
Antiguo 11/11/2009, 17:38
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 23 años, 4 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
  #7 (permalink)  
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: 23 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.
  #8 (permalink)  
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: 23 años, 1 mes
Puntos: 8
Respuesta: 10 registros aleatorios

uso access
  #9 (permalink)  
Antiguo 12/11/2009, 05:10
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 3 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;" />
  #10 (permalink)  
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: 23 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 06:56.