..:: MX Studio Fóruns ::..: Registros aleatórios sem repetição - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Registros aleatórios sem repetição

#1 User is offline   xanburzum 

  • Group: Administrador
  • Posts: 2073
  • Joined: 04-November 08

Posted 12 November 2011 - 03:01 PM

RANDOM com registros de um banco de dados sem repetição.

<%
 
 
' 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
 
%>

0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic



Publicidade




1 User(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)