
08/07/2005, 21:16
|
| | Fecha de Ingreso: julio-2005 Ubicación: Santiago de Compostela
Mensajes: 80
Antigüedad: 19 años, 10 meses Puntos: 0 | |
el RND por access nada... si usas comando como el NewID con sql server funciona de maravilla.
Puedes hacer asi:
SELECT TOP 1 CAMPO FROM TAbla ORDER BY RND(INT(NOW*IDDATABELA)-NOW*IDDATABELA)
o asi
SQL = "select * from TABELA order by Rnd(Int(Now()*[ID])-Now()*[ID]);"
hay una funcion muy buena que creo mi amigo para eso
<%
'--------------------------------------------------------------
' RANDOM COM REGISTROS DE UM BD SEM REPETIÇÃO
' Autor: Márcio J. Lima (Guardião)
' Data de criação: 22-08-2002 - SP / Brasil
'--------------------------------------------------------------
' Gravamos o Recordset em um Array Bidimensional
Set strRS = Server.CreateObject("ADODB.RecordSet")
strRS.Open "SELECT * FROM membros ", strConexao, 3, 3
arySub = strRS.getRows()
' Fechamos a conexão pois não usaremos mais
strRS.Close
Set strRS = Nothing
strConexao.Close
Set strConexao = Nothing
Dim TotalReg, TotalNum, vran, x, encontrou, arrGerados(0)
Dim Numreg, verGerado, var_arrGerados, xLoop
Function GeraRegistros(TotalNum)
TotalReg=Cint(uBound(arySub,2)) ' Encontramos o Maior Array Gerado
vran = 1
For x = 0 To TotalNum-1 ' LOOP de 1 p/ Total solicitado
encontrou = 1
Randomize() ' Geramos o primeiro Random
NumReg = Cint((rnd*TotalReg))
verGerado = Split(var_arrGerados,",") ' Verifica se nº gerado
For xLoop = LBound(verGerado) To UBound(verGerado)
IF Trim(verGerado(xLoop)) = Trim(NumReg) Then
'Este "response" comentado abaixo, indica qual número se repetiram
'E não armazena no Array único, fazendo gerando um novo Random
'response.write "<b>[ "& verGerado(xLoop) &","& NumReg &" ]</b><br> "
x = x - 1
encontrou = 2
Exit For
End IF
Next
IF encontrou = 1 Then ' NÃO ENCONTROU, gera o próximo número
IF vran = 1 Then ' primeiro (Verificar este trecho)
arrGerados(0) = NumReg
vran = 2
Else
arrGerados(0) = arrGerados(0) &","& NumReg
End IF
var_arrGerados = Join(arrGerados)
End IF
Next
GeraRegistros = var_arrGerados
End Function
' Array gerado, podemos iniciar a formatação de perguntas
number = GeraRegistros(3)
verNum = Split(number, ",")
For x = LBound(verNum) to UBound(verNum)
response.write arySub(0,verNum(x)) &"."
response.write arySub(1,verNum(x)) &"<br>"
Next
%>
un saludo |