Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Problema su random Immagini

    Ciao a tutti,
    ho questo problema, devo far visualizzare in forma random delle immagini, su questo forum ho trovato uno script che, adattato alle mie esigenze, mi da il seguente errore:

    SELECT * FROM PICTURES WHERE PIC_APPROVED = True ORDER BY PIC_ID
    Microsoft OLE DB Provider for ODBC Drivers error '80040e24'

    Rowset does not support fetching backward.

    /inc/inc_myimg.asp, line 19


    La linea 19 é: RSimg.Move rndNumber


    Sotto vi posto il mio codice e poi dopo l'originale per farvi capire cosa ho modificato....


    SCRIPTS MODIFICATO
    codice:
    <%	Dim  RSimg, SQLimg
    
    		SQLimg = " SELECT * FROM PICTURES WHERE PIC_APPROVED = True ORDER BY PIC_ID "
    
    	Response.Write SQLimg
    	Set RSimg= Conn.Execute(SQLimg)
    
    Dim rndMax 
    rndMax = CInt(RSimg.RecordCount) 
    RSimg.MoveFirst 
    Dim rndNumber 
    Randomize Timer 
    rndNumber = Int(RND * rndMax) 
    RSimg.Move rndNumber 
    %>
    
    " target="_blank">[img]/img/MY_IMG/<%=RSimg([/img]" alt="<%=RSimg("PIC_DESC") %>" width="100" height="100" border="0" />
       <%if RSimg("PIC_DESC") <> "" Then%><span class="no"><%=RSimg("PIC_DESC") %></span><%End if%>
    SCRIPTS ORIGINALE
    codice:
    <% Dim objRS 
    set objCON = Server.CreateObject("ADODB.Connection") 
    objCON.open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("mdb-database/photogallery.mdb") 
    set objRS = Server.CreateObject("ADODB.Recordset") 
    objRS.open "SELECT PIC_ID, PIC_CAT, PIC_NAME, PIC_IMAGE, PIC_APPROVED, PIC_DESC FROM PICTURES where PIC_APPROVED=1 order by PIC_ID ", objCON, 3, 1 
    Dim rndMax 
    rndMax = CInt(objRS.RecordCount) 
    objRS.MoveFirst 
    Dim rndNumber 
    Randomize Timer 
    rndNumber = Int(RND * rndMax) 
    objRS.Move rndNumber 
    %> 
    [img]public/<%=objRS([/img]" alt="<%=objRS("PIC_DESC") %>" width="18%" height="60%" />
     
    <%if objRS("PIC_DESC") <> "" Then%><span class="no"><%=objRS("PIC_DESC") %></span><%End if%> 
    <% 
    objRS.Close 
    Set objRS = Nothing 
    objCON.Close 
    Set objCON = Nothing 
    %>
    Saluti da Francesco G.

  2. #2
    Una domanda:

    che database usi ?
    SGr33n

  3. #3
    access 2000
    Saluti da Francesco G.

  4. #4
    Se usavi mysql potevi anche cancellare tutto e fare "order by rand()"

    Cmq il tuo problema è che apri il recordset con il cursore che non permette di navigare all'indietro tra i record, in quanto, non specificandoli, ti utilizza quelli di default, ovvero forward-only e read-only prova così:

    codice:
    <%	Dim  RSimg, SQLimg
    
    		SQLimg = " SELECT * FROM PICTURES WHERE PIC_APPROVED = True ORDER BY PIC_ID "
    
    set RSimg = Server.CreateObject("ADODB.Recordset") 
    RSimg.open SQLimg, Conn, 3, 1
    
    Dim rndMax 
    rndMax = CInt(RSimg.RecordCount) 
    RSimg.MoveFirst 
    Dim rndNumber 
    Randomize Timer 
    rndNumber = Int(RND * rndMax) 
    RSimg.Move rndNumber 
    %>
    
    " target="_blank">[img]/img/MY_IMG/<%=RSimg([/img]" alt="<%=RSimg("PIC_DESC") %>" width="100" height="100" border="0" />
       <%if RSimg("PIC_DESC") <> "" Then%><span class="no"><%=RSimg("PIC_DESC") %></span><%End if%>

    Non ho testato il tutto, ho solo corretto i cursori

    Bye
    SGr33n

  5. #5
    Utente di HTML.it L'avatar di Gioba66
    Registrato dal
    Jun 2002
    Messaggi
    2,189
    codice:
    <% 
        Randomize() 
        randNum = (CInt(1000 * Rnd) + 1) * -1 
     
      
        sql = "SELECT TOP 100 *, r = Rnd(" & randNum & ") FROM TableName  WHERE ...  ORDER BY r" 
     
      %>
    adattala
    Tutti vogliono parlare, nessuno sa ascoltare.

  6. #6
    Ciao,
    ho utilizzato il tuo code e adesso funge!
    Grazie, vorrei solo capire una cosa, dato che sono molto inespero in ASP, cosa significa questa stringa

    RSimg.open SQLimg, Conn, 3, 1


    Grazie e BUONA DOMENICA!!!

    Originariamente inviato da SGr33n
    Se usavi mysql potevi anche cancellare tutto e fare "order by rand()"

    Cmq il tuo problema è che apri il recordset con il cursore che non permette di navigare all'indietro tra i record, in quanto, non specificandoli, ti utilizza quelli di default, ovvero forward-only e read-only prova così:

    codice:
    <%	Dim  RSimg, SQLimg
    
    		SQLimg = " SELECT * FROM PICTURES WHERE PIC_APPROVED = True ORDER BY PIC_ID "
    
    set RSimg = Server.CreateObject("ADODB.Recordset") 
    RSimg.open SQLimg, Conn, 3, 1
    
    Dim rndMax 
    rndMax = CInt(RSimg.RecordCount) 
    RSimg.MoveFirst 
    Dim rndNumber 
    Randomize Timer 
    rndNumber = Int(RND * rndMax) 
    RSimg.Move rndNumber 
    %>
    
    " target="_blank">[img]/img/MY_IMG/<%=RSimg([/img]" alt="<%=RSimg("PIC_DESC") %>" width="100" height="100" border="0" />
       <%if RSimg("PIC_DESC") <> "" Then%><span class="no"><%=RSimg("PIC_DESC") %></span><%End if%>

    Non ho testato il tutto, ho solo corretto i cursori

    Bye
    Saluti da Francesco G.

  7. #7
    È l'apertura del recordset con cursori differenti da quelli standard

    Bye


    Originariamente inviato da iz7auh
    Ciao,
    ho utilizzato il tuo code e adesso funge!
    Grazie, vorrei solo capire una cosa, dato che sono molto inespero in ASP, cosa significa questa stringa

    RSimg.open SQLimg, Conn, 3, 1


    Grazie e BUONA DOMENICA!!!
    SGr33n

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.