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

obtener varios registros aleatoriamente

Estas en el tema de obtener varios registros aleatoriamente en el foro de ASP Clásico en Foros del Web. Hola que tal, espero me puedan ayudar. Necesito obtener varios registros de forma Aleatoria. Tengo este código... set oConn=Server.CreateObject("ADODB.Connection") set rs=Server.CreateObject("ADODB.Recordset") oConn.Open "DRIVER={Microsoft Access Driver ...
  #1 (permalink)  
Antiguo 10/06/2003, 10:17
Avatar de jorel  
Fecha de Ingreso: abril-2003
Ubicación: Monterrey, N.L.
Mensajes: 253
Antigüedad: 22 años, 1 mes
Puntos: 0
Exclamación obtener varios registros aleatoriamente

Hola que tal, espero me puedan ayudar.

Necesito obtener varios registros de forma Aleatoria.

Tengo este código...

set oConn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("Mi_basededatos.mdb")
SQL="SELECT * FROM tabla"
rs.OPEN sql, oconn, 3, 1
intTotalRecords = rs.RecordCount
Randomize()
intRandomNumber = Int((intTotalRecords * Rnd))
rs.Move intRandomNumber


response.write(rs("nombre"))
response.write(rs("desc1"))


Este me obitene de mi tabla registros de forma aleatoria, pero como le puedo hacer si quiero obtener varios registros de la tabla sin que se repitan.

Es decir me gustaria poner varios response.write

response.write(rs("nombre"))
response.write(rs("desc1"))
response.write(rs("nombre"))
response.write(rs("desc1"))
response.write(rs("nombre"))
response.write(rs("desc1"))

Pero asi solo me trae el mismo registro, es aleatorio cada vez que actualizo, pero es una acutalizada en los mismos campos me trae la misma información ¡

Ok mchas gracias de Antemano.

Jorge Alberto Santana Hernández.
  #2 (permalink)  
Antiguo 10/06/2003, 13:12
Avatar de Mulato  
Fecha de Ingreso: diciembre-2001
Ubicación: Caracas
Mensajes: 158
Antigüedad: 23 años, 4 meses
Puntos: 0
Saludos...

Aqui te coloco una semichuleta para que te ayudes.... termina de adaptarlo...

sql = "SELECT nombre, desc1 FROM tabla ORDER BY nombre"
sql2 = "SELECT COUNT(*) total FROM tabla"

Set result = con.Execute(sql)
Set result2 = con.Execute(sql2)



<%'Escribe el Registro
Response.Write result.Fields("nombre") &", " &result.Fields("des1") %>

<%'Pasa a la siguiente fila
result.MoveNext
Loop%>


Suerte...
__________________
Necesito aprender para compartir mi saber...
  #3 (permalink)  
Antiguo 10/06/2003, 13:19
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 23 años, 3 meses
Puntos: 1
<%
set oConn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("Mi_basededatos.mdb")
SQL="SELECT * FROM tabla"
rs.OPEN sql, oconn, 3, 1
for contador=1 to 10 ' Esto nos da 10 registros aleatorios
intTotalRecords = rs.RecordCount
Randomize()
intRandomNumber = Int((intTotalRecords * Rnd))
rs.Move intRandomNumber
response.write(rs("campo"))
next
%>
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
  #4 (permalink)  
Antiguo 11/06/2003, 00:09
Avatar de josego  
Fecha de Ingreso: enero-2002
Mensajes: 126
Antigüedad: 23 años, 3 meses
Puntos: 0
REgistros Aleatorios

Saludos.

Amigo aquí te va una propuesta en el SELECT:

"SELECT TOP N FROM TABLA WHERE condición ORDER BY newid()"

donde:

N: número de registros máximos que deseas devolver.

Espero te sirva.

Saludos.

Jo
__________________
José G. Díaz Unda
Analista de Sistemas
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:11.