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

    problema con stampa news ciclica

    ciao a tutti,ho fatto un classico codice che prende degli articoli da un database e li stampa in una pagina.ho bisogno che vengano esculsi i primi tre risultati e in totale ne vengano visualizzati sei.
    inizialmente funzionava tutto,poi quando ho fatto una prova e ho cancellato un articolo per inserirne un altro mi ha dato errore.
    il codice è questo:

    codice:
    <%
    					sql = "select * from articoli order by data desc, id desc"
    					rs.Open sql, conn, 1, 3
    					
    					intConta = 1
                        while (not rs.eof or rs.bof)
                        if (intConta > 3) then
    					
    					for i = 0 to 5
    					id = rs("ID") 
    					data = rs("Data")
    					titolo = rs("Titolo")
    					%>
    					<font color="#CC0000">°°</font>
    					<font color="#A3A7AB">
    					<%
    					Response.Write ("(")
    					Response.Write data
    					Response.Write (")")
    					%></font>
    					</font><font color="#CC0000">
    					<a href="pag-articolo.asp?numero=<%=id%>"></font>
    					<font color="#CC0000">
    					<%
    					Response.Write titolo
    					%>
    					</font></a>
    					
    
    					<%
    					rs.movenext
    					next						
    					end if
    
                        rs.movenext()
                        intConta = intConta + 1
                        wend					
    					%>
    l'errore che da, invece, è questo:

    ADODB.Field error '800a0bcd'

    Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

    /index2.asp, line 143

    dove la linea 143 è quella in rosso

    se avete bisogno di vedere la pagina è:

    www.dariosqueri.it/index2.asp

    grazie mille,ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    47
    Nel tuo codice hai un ciclo for all'interno del ciclo while.
    Il problema è che il ciclo while si interrompe (giustamente) nel caso in cui il recordset sia terminato (rs.EOF), mentre il ciclo FOR va da 0 a 5 senza curarsi della possibilità che non ci siano 6 record.
    Se dunque i record sono solo 5, ecco che l'ultimo movenext (quello dentro il FOR) ti causa l'errore.

    Non ti conviene eliminare il ciclo FOR ed usare questa condizione:

    if (intConta > 3) And (intConta<=9) then

    In questo modo vengono considerati solo i record da 4 a 9 (che sono 6)

    ciao

  3. #3
    no,neanche così funziona...ho fatto quello che dicevi ma,inserendo un altro articolo nel db,ha dato sempre lo stesso errore:

    codice:
    ADODB.Recordset error '800a0bcd' 
    
    Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record. 
    
    /index2.asp, line 164
    cambiando però riga,infatti adesso è la 164,quella in rosso qua sotto:

    codice:
    <%
    					sql = "select * from articoli order by data desc, id desc"
    					rs.Open sql, conn, 1, 3
    					
    					intConta = 1
                        while (not rs.eof or rs.bof)
                        if (intConta > 3) and (intConta <=9) then
    					
    					id = rs("ID")
    					data = rs("Data")
    					titolo = rs("Titolo")
    					%>
    					<font color="#CC0000">°°</font>
    					<font color="#A3A7AB">
    					<%
    					Response.Write ("(")
    					Response.Write data
    					Response.Write (")")
    					%></font>
    					</font><font color="#CC0000">
    					<a href="pag-articolo.asp?numero=<%=id%>"></font>
    					<font color="#CC0000">
    					<%
    					Response.Write titolo
    					%>
    					</font></a>
    					
    
    					<%
    					rs.movenext						
    					end if
                        rs.movenext() 
                        intConta = intConta + 1 
                        wend					
    					%>
    cosa c'è che non va?a me sembra a posto...

  4. #4
    niente,risolto,avevo solo lasciato una riga che andava tolta...grazie mille,ciao

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.