Ho un database access che viene aggionato.
Devo estrarre a random 20 record e visualizzarlo.
Con altri linguaggi sarebeb facile ma in asp è un casino
Ho un database access che viene aggionato.
Devo estrarre a random 20 record e visualizzarlo.
Con altri linguaggi sarebeb facile ma in asp è un casino
http://www.actionscript.it/forum/
www.actiondesign.it
Prova a vedere se questi link ti sono utili
http://www.markprijs.nl/web/asp/ranrecord/
http://www.mahcsp.com/demo/viewcode....emo/random.asp
Ciao
ti ringrazio ma ho visto il primo link e provandolo mi da il random di una solo voce se faccio un ciclo mi mette anche record uguali....
ora vedo il secondo
http://www.actionscript.it/forum/
www.actiondesign.it
Hai altri link? non mi sono stati di grande aiuto questi....![]()
![]()
http://www.actionscript.it/forum/
www.actiondesign.it
Vediamo se riesco ad aiutarti con un piccolo esempio
Spero che così sia più chiarocodice:<% dim ArrayElementi(20) dim Contatore set conn=server.CreateObject("adodb.connection") set rs=server.CreateObject("adodb.recordset") conn.Open connStr sql = "Select Colonne from tabella" rs.Open sql, conn, 3 'Recupero il recordcount quindi il numero massimo di 'record visualizzabili recCount = rs.RecordCount 'inizializzo il contatore degli elementi Contatore = 0 '//Faccio un ciclo di 20 per memorizzare in un array gli elementi '//che mi servono escludendo quelli doppi do while Contatore < 20 randomize 'genero il numero del record da estrarre rec = int(rnd * recCount) '//Controllo che non ci sia già all'interno del mio array flagEsiste = false for intCount = 0 to 19 if (ArrayElementi(intCount) = rec) then flagEsiste = true exit for end if next if (Not flagEsiste) then ArrayElementi(Contatore) = rec Contatore = Contatore + 1 end if loop 'dopodichè ciclo sull'array for intCount = 0 to 19 'Mi sposto all'inizio del recordset rs.MoveFirst 'Mi sposto alla posizione del record rs.Move ArrayElementi(intCount) %> <table> <tr><td><%= rs("Field1") %></td></tr> <tr><td><%= rs("Field2") %></td></tr> <tr><td><%= rs("Field3") %></td></tr> </table> <% next rs.close conn.Close set rs=nothing set conn=nothing %>
Così presenti 20 volte il contenuto del campo "testo" di un record casuale della tabella "dati"codice:'set connession to database Set objConn=Server.CreateObject("ADODB.Connection") 'open connession to database objConn.Open cstring sqldat = "SELECT COUNT(*) FROM tabella" Set objRS = objConn.Execute(sqldat) dim max max = objRS(0) objRS.Close Set objRS = Nothing dim k, casual(20), check cont = 0 check = false Set objRs = Server.CreateObject("ADODB.Recordset") sql = "SELECT testo FROM tabella" objRs.Open sql, objConn, 3, 3 do until cont=20 Randomize() casual(cont) = Int(Rnd() * Max) ' //// routine per evitare doppioni //////////////////////////////// ' (se trova un record già estratto torna su senza incrementare cont) ' ////////////////////////////////////////////////////////////////// for k=0 to (cont-1) if casual(cont)=casual(k) then check=true next ' /////////////////////////////////////////////////////////////////// If Not (objRs.EOF OR check) Then objRs.Movefirst objRs.Move casual(cont) testo=objRS("testo") if not testo="" then 'evita record vuoti %> <div><%=testo %></div> <hr/> <% cont=cont + 1 end If end if check = false loop objRs.Close Set objRs = Nothing
![]()
E' nato www.lombardiamotori.it
www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!
Praticamente, salvo qualche sottigliezza, le due procedure suggerite sono la stessa cosa.....
![]()
E' nato www.lombardiamotori.it
www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!