Pessoal preciso de uma ajuda em relação a uma função randômica. Esta função deve extrai do banco de dados os registros aleatoriamente mas não deve repetir as informações extraídas mas não estou conseguindo fazer isto alguém pode me ajudar?
<% option explicit %>
<%
dim db, rs, sql, controle, numero
set db = Server.CreateObject("ADODB.Connection")
db.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("random.mdb") & ";Persist Security Info=False"
set rs = Server.CreateObject("ADODB.RecordSet")
rs.activeconnection = db
'para chamar o script utilize a linha abaixo
call randomizar()
sub randomizar()
dim foi(3)
dim numero
'procurando o 1°registro a imprimir
call procura()
'se o lugar onde ele procurou não achar nada então
if rs.eof or rs.bof then
'fecha a conexão e procura de novo
rs.close
call procura()
response.write "<tr><tD>"&rs("descricao")&" "&rs("valor")&"- </td></tr>"
' id do 1° numero
foi(1) = rs("id")
'senao ele já imprime e grava o id
else
response.write "<tr><tD>"&rs("descricao")&" "&rs("valor")&"- </td></tr>"
foi(1) = rs("id")
end if
'nova procura...
rs.close
call procura()
'apartir daqui a lógica é a mesma
if rs.eof or rs.bof then
rs.close
call procura()
' aqui verificamos se o id encontrado já foi colocado
if foi(1) = rs("id") then
do while not foi(1) <> rs("id")
rs.close
call procura()
loop
end if
response.write "<tr><tD>"&rs("descricao")&" "&rs("valor")&"- </td></tr>"
foi(2) = rs("id")
else
'o mesmo aqui
if foi(1) = rs("id") then
do while not foi(1) <> rs("id")
rs.close
call procura()
loop
end if
response.write "<tr><tD>"&rs("descricao")&" "&rs("valor")&"- </td></tr>"
foi(2) = rs("id")
end if
'mesma lógica só que com um campo a mais
rs.close
call procura()
if rs.eof or rs.bof then
rs.close
call procura()
'aqui vemos se o registro encontrado foi igual aos dois anteriores
if foi(1) = rs("id") or foi(2) = rs("id") then
'loop para achar um registro diferente dos dois anteriores
do while not foi(1) <> rs("id") and foi(2) <> rs("id")
rs.close
call procura()
loop
end if
response.write "<tr><tD>"&rs("descricao")&" "&rs("valor")&"- </td></tr>"
foi(3) = rs("id")
else
'o mesmo aqui
if foi(1) = rs("id") or foi(2) = rs("id") then
do while not foi(1) <> rs("id") and foi(2) <> rs("id")
rs.close
call procura()
loop
end if
response.write "<tr><tD>"&rs("descricao")&" "&rs("valor")&"- </td></tr>"
foi(3) = rs("id")
end if
'limpando
set foi(3) = nothing
set numero = nothing
set controle = nothing
end sub
Sub procura()
'aqui pegamos um registro aleatóriamente
sql = "SELECT * FROM randomizando"
rs.open sql, db, 3, 3
controle=0
randomize
numero = (RND * rs.recordcount)\1
do while numero <> controle
controle=controle+1
rs.MoveNext
loop
end sub
%>
Pergunta
Guest Rafael P.C
Pessoal preciso de uma ajuda em relação a uma função randômica. Esta função deve extrai do banco de dados os registros aleatoriamente mas não deve repetir as informações extraídas mas não estou conseguindo fazer isto alguém pode me ajudar?
Link para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.