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

mostrar registros aleatorios complicado

Estas en el tema de mostrar registros aleatorios complicado en el foro de ASP Clásico en Foros del Web. hola tengo un script que me muestra datos de una base de datos lo que quiero que me haga es que me muestre un registro ...
  #1 (permalink)  
Antiguo 15/04/2007, 06:49
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
mostrar registros aleatorios complicado

hola tengo un script que me muestra datos de una base de datos lo que quiero que me haga es que me muestre un registro aleatorio

en la base de datos tengo un campo "Id" que es autonumerico y el administrador borrar e inserta registros normalmente

y no se como hacerlo
  #2 (permalink)  
Antiguo 15/04/2007, 14:05
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
Re: mostrar registros aleatorios complicado

Hola :)

por SQL:

http://www.petefreitag.com/item/466.cfm

por ASP:

Código:
<%
Dim conn, rst

set conn = server.CreateObject("ADODB.Connection")
conn.open "connectionstring"

set rst = conn.execute("SELECT * FROM tabla")
if not rst.EOF then
    rst.moveFirst()
    a = Int((rst.recordCount) * Rnd)
    
    ' Te posiciones en el registro aleatorio
    rst.move(a)
    
end if

rst.close()
set rst = nothing
%>

Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #3 (permalink)  
Antiguo 19/04/2007, 00:05
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
Re: mostrar registros aleatorios complicado

y ahora para mostrar 10 registros?
  #4 (permalink)  
Antiguo 19/04/2007, 00:34
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Re: mostrar registros aleatorios complicado

seria algo similar a esto.... en negritas lo que deberias de agregarle al codigo que te proporciono tammander

<%
Dim conn, rst
set conn = server.CreateObject("ADODB.Connection")
conn.open "connectionstring"
set rst = conn.execute("SELECT * FROM tabla")
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)

next

end if
rst.close()
set rst = nothing
%>

suerte
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #5 (permalink)  
Antiguo 19/04/2007, 00: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
Re: mostrar registros aleatorios complicado

me sale el error

"Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E24)
El conjunto de filas no admite recuperación hacia atrás"
  #6 (permalink)  
Antiguo 19/04/2007, 06:24
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
Re: mostrar registros aleatorios complicado

Eso es porque el cursor del recordset no permite moverse hacia atras. Te propongo un ejercicio. Deja tal y como Shiryu_libra (hola, shiryu ;) ) te puso el código y busca las diferentes formas de abrir un recordset.

Esta:

set rst = conn.execute("SELECT * FROM tabla")

es bastante comun pero no deja mas que mover el cursor hacia adelante (suficiente en la mayoria de los casos).

Una pista:

' Tipos de cursor
Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3

' Bloqueos
Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adLockOptimistic = 3

set rs=createobject("ADODB.Recordset")
rs.CursorType = elije un tipo de cursor
rs.LockType = adLockOptimistic ' Este te lo dejo ya listo ;)


Si quieres investigar mas, mira este sitio:

http://www.asptutor.com/asp/vart.asp?id=5



Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
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 11:47.