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

    Either BOF or EOF is True

    ciao ragazzi,ultimo quesito del giorno:

    ho una pagina dove vengono visualizzate delle news.io ne devo visualizzare 10 per pagina.
    ho fatto tutto quello che c'era da fare,ma,una volta pubblicata la pagina,le news vengono prese,ma i "pulsanti di scorrimento" delle pagine (le news vengono automaticamente divise in più pagine) danno errore.
    ho una vaga idea del perchè:il codice non è molto semplice.o meglio,è semplice ma ci sono dentro tante cose diverse.
    ci ho guardato più e più volte ma non ho capito dove può essere l'errore...
    allora,il codice è:

    codice:
    <table border="0" cellpadding="5" style="border-collapse: collapse" width="96%" id="table20">
    				<tr>
    					<td style="border-bottom: 1px dotted #CC0000">
    					<font size="4" color="#CC0000">Risultati della ricerca</font>
    					
    
    
    					<%
    					ricerca = Request.Form("ricerca")
    					if ricerca = "" then
    					ricerca = ("Centro Popolare Europeo")
    					end if      
    					
    					Page_Size = 10
    
                        If Request("Page") = "" Then
                        Current_Page = 1
                        Else
                        Current_Page = CInt(Request("Page"))
                        End If
    
                        Set rs=Server.CreateObject("ADODB.RecordSet")
                        rs.PageSize = Page_Size                      	
    					%> 
    					Articoli trovati contenenti la parola <font color="C00000"><%=ricerca%></font>
    
    
    					<%			
    					sql = "select * from articoli WHERE Titolo like '%" & ricerca & "%' OR Testo like '%" & ricerca & "%' order by data desc"
    					rs.Open sql, conn, 1, 3
    					
                        Page_Count = rs.PageCount
    
                        If 1 > Current_Page Then Current_Page = 1
                        If Current_Page > Page_Count Then Current_Page = Page_Count
    
                        rs.AbsolutePage = Current_Page
    
                        Do While rs.AbsolutePage = Current_Page And Not rs.EOF
    					
    					while not rs.EOF
    					  sq = sq + 1
    					  rs.movenext
    					wend
    					if sq > 0 then		
    				
    					  intConta = 1
                          i = 0
                          rs.movefirst
                          while not rs.EOF
                            i = i + 1
                            if i MOD 2 = 0 then
                              colour = ("#EEEEEE")
                            else
                              colour = ("#FFFFFF")
                            end if
    					
    					  id = rs("ID")
    					  data = rs("Data")
    					  titolo = rs("Titolo")
    					  %>
    					<table border="0" cellpadding="2" style="border-collapse: collapse" width="100%" id="table30">
    						<tr>
    							<td bgcolor="<%=colour%>" style="border-bottom: 1px solid #E4E4E4" width="69" valign="top" align="left">
    					           <font color="#999999">
    					           <%
    					           Response.Write ("(")
    					           Response.Write data
    					           Response.Write (")")
    					           %>
    					           </font>
    					        </td> 
    					        <td bgcolor="<%=colour%>" style="border-bottom: 1px solid #E4E4E4" valign="top" align="left">
    					        
    					           <a href="pag-articolo.asp?numero=<%=id%>">
    					           <font color="#CC0000">				
    					           <%
    					           Response.Write titolo
    					           %>
    					           </font>
    					           </a>
    					        
    					        </td>
    					    </tr>
    					<%						
                            rs.movenext()
                            intConta = intConta + 1
                          wend
                        
                        else
                          Response.Write ("Nessun articolo trovato con la parola da Lei richiesta")
    					end if
    					%>
    					</table> 
                   </tr>	
    			</table>
            <div align="center">
              <center>
                <%
                rs.movenext 
                loop
    		    
                rs.close
                set rs = nothing
           
                Response.Write "<center>"
                Response.Write "<td colspan=""10"" align=""center"">
    
    "
                If Current_Page = 1 Then
                  Response.Write "<font color='#000000'>Inizio| "
                End If 
                If Current_Page >= 2 Then
                  Response.Write "<< Inizio | " & vbCrLf
                End If  
                If Current_Page >= Page_Count Then
                  Response.Write "<font color='#000000'>Successiva >|"
                End If 
                If Current_Page < Page_Count Then
                  Response.Write "Successiva >" & "|" & vbCrLf
                End IF 
                If Current_Page <> 1 Then
                  Response.Write "< Precedente  | " & vbCrLf
                  Response.Write " " & vbCrLf
                End If 
                If Current_Page = 1 Then
                  Response.Write "<font color='#000000'>< Precedente | "
                End If 
                If Current_Page <> Page_Count Then
                  Response.Write "Ultima >>" & vbCrLf
                End If 
                If Current_Page >= Page_Count Then
                  Response.Write "Ultima"
                End If 
                %> 
              </center>
            </div>
    l'errore che ho è:

    ADODB.Recordset error '800a0bcd'

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

    /ricerca.asp, line 134

    dove la linea 134 è quella rossa.
    Idee?Grazie mille,ciao
    :master:

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ci sono troppi cicli sullo stesso recordset...

    codice:
                            rs.movenext() 
                            intConta = intConta + 1
                          wend
                        
                        else
                          Response.Write ("Nessun articolo trovato con la parola da Lei richiesta")
    					end if
    					%>
    					</table> 
                   </tr>	
    			</table>
            <div align="center">
              <center>
                <%
                rs.movenext   
                loop

    Con il primo raggiungi la fine del recordset quindi quando arrivi al secondo se BOF.

    Roby

  3. #3
    perciò basterebbe settarmi un altro recordset?
    ok,ci provo...

  4. #4
    ehm,ok,l'errore è andato via...solo che adesso ho la pagina tutta sballata e non viene eseguita correttamente...
    i "pulsanti" di scorrimento tra le pagine sono (mi sembra di vedere dalla pagina) in una colonna inesistente,e quando si attiva quello per andare alla pagina successiva la query cambia e la ricerca viene fatta in base a un altra parola.
    giustamente l'altra parola è quella definita da me come daefalut se la variabile che si passa per fare la ricerca è vuota.
    c'è qualcosa che non va,dunque...

  5. #5
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ma non è stupendo?
    Rifai tutto mettendo un pezzetto alla volta, complicando lo script man mano.

    Roby

  6. #6
    credo proprio che seguirò il tuo consiglio...
    domani,però..!!!!
    ahahahah...
    ciao e grazie comunque!

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.