Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692

    Ciclo For Next va in errore

    Buonasera.

    Se ho questo codice, che visualizza 3 records alla volta estratti da un query:

    codice:
    strVar = 3
    
    For i = 1 to strVar
    ...
    next
    Se strVar è diverso da 3 il ciclo va in errore, perchè?
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  2. #2
    In che senso va in errore?
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  3. #3
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    Originariamente inviato da maximum
    In che senso va in errore?
    Dice eccezione.

    Sto cercando di sviluppare un codice di paginazione e chiedo tramite una query di visualizzare a video tre record per volta.

    Ebbene l'ultima pagina che contiene solo due record e non tre va in errore:
    codice:
    error '80020009' 
    Exception occurred.
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  4. #4
    Scusa la digressione, ma non puoi usare il codice di Roby?
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  5. #5
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    Originariamente inviato da maximum
    Scusa la digressione, ma non puoi usare il codice di Roby?
    No perchè il codice di Roby lavora su una sola query ed un solo recordset, mentre quello che sto cercando di sviluppare lavora su due query e due recordset. (ci ho già provato e mi sono impappinato )

    Vuoi dare uno sguardo al codice che ho scritto?
    codice:
    <%
    
    If Request.QueryString("pagina") = "" Then
    pagina = 1
    Else
    pagina = CInt(Request.QueryString("pagina"))
    End If
    
    ' Prima query e primo recordset
    SET objRS1 = Server.CreateObject("ADODB.RecordSet")                       
    strSQL1 = "SELECT DISTINCT campoA, campoB FROM tblTest;"
    objRS1.Open strSQL1, conn, 1, 3
    
    ' Criteri di paginazione
    RecordsXPagina = 3
    objRS1.PageSize = RecordsXPagina
    objRS1.AbsolutePage = pagina
    
    ' Ciclo per interrogare la seconda query
    For i = 1 to RecordsXPagina
    
        SET objRS2 = Server.CreateObject("ADODB.RecordSet")
    	strSQL2 = "SELECT TOP 1 * FROM tblTest WHERE campoA = '" &_
    	objRS1("campoA") & "' and campoB = '" & objRS1("campoB") & "' ORDER BY ID DESC;"
    	objRS2.Open strSQL2, conn, 1, 3
    
    
    ' Dati restituiti
    ....
    
    'muovi il primo recordset
    objRS1.movenext
    
    'chiudi e distruggi il secondo recordset
    objRS2.close
    set objRS2=Nothing
    
    next
    
    ' Paginazione
    Response.Write "Numero Pagine:"
    
    For pagina = 1 to objRS1.PageCount
      Response.Write "<A href='"&istring&"?pagina=" & pagina
      Response.write "'>"
      Response.write "<font size=1 color=#000080>"
      Response.Write pagina
      Response.Write "</A> " 
    Next
    Response.Write ">>"
    
    'chiudi e distruggi il primo recordset
    objRS1.close
    set objRS1 = Nothing
    
    end if
    
    'chiudi e distruggi la connessione						
    conn.Close
    Set conn = Nothing
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  6. #6
    E' il primo o il secondo FOR che dà problemi?
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  7. #7
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    Originariamente inviato da maximum
    E' il primo o il secondo FOR che dà problemi?
    Credo sia il primo ciclo FOR, perchè quando voglio spostarmi sull'ultima pagina della paginazione mi stampa i risultati con l'eccezione sulla riga d'esecuzione della query che sta all'interno del primo ciclo for.

    Al momento ho bypassato l'errore inserendo in cima al codice on error resume next, l'eccezione non c'è più ma mi trovo l'utlimo dei record dell'ultima pagina della paginazione ripetuto enne volte sino ad arrivare a RecordsPerPagina = 13.
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  8. #8
    secondo me perchè devi mettere dopo il for
    codice:
    for i=1 to recordPerPagina
    if not objRS1.eof then
    ...
    ...
    objRS1.movenext
    end if
    next
    perchè se alla Pagina X objRs1 ha 10 record e tu ne vuoi visualizzare 13, tira (o dovrebbe) tirare fuori un errore


  9. #9
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    Grazie Santino83... adesso l'errore di eccezione è sparito ma ne restituisce un altro quando non ha records da estrarre:
    ADODB.Recordset error '800a0bcd'
    Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
    Codice aggiornato:
    codice:
    If Request.QueryString("pagina") = "" Then
    pagina = 1
    Else
    pagina = CInt(Request.QueryString("pagina"))
    End If
    
    ' Prima query e primo recordset
    SET objRS1 = Server.CreateObject("ADODB.RecordSet")                       
    strSQL1 = "SELECT DISTINCT campoA, campoB FROM tblTest;"
    objRS1.Open strSQL1, conn, 1, 3
    
    ' Criteri di paginazione
    RecordsXPagina = 3
    objRS1.PageSize = RecordsXPagina
    objRS1.AbsolutePage = pagina <---riga dell'errore
    
    ' Ciclo per interrogare la seconda query
    For i = 1 to RecordsXPagina
    
    if not objRS1.eof then
    
        SET objRS2 = Server.CreateObject("ADODB.RecordSet")
    	strSQL2 = "SELECT TOP 1 * FROM tblTest WHERE campoA = '" &_
    	objRS1("campoA") & "' and campoB = '" & objRS1("campoB") & "' ORDER BY ID DESC;"
    	objRS2.Open strSQL2, conn, 1, 3
    
    
    ' Dati restituiti
    ....
    
    'muovi il primo recordset
    objRS1.movenext
    
    'chiudi e distruggi il secondo recordset
    objRS2.close
    set objRS2=Nothing
    
    end if
    next
    
    ' Paginazione
    Response.Write "Numero Pagine:"
    
    For pagina = 1 to objRS1.PageCount
      Response.Write "<A href='"&istring&"?pagina=" & pagina
      Response.write "'>"
      Response.write "<font size=1 color=#000080>"
      Response.Write pagina
      Response.Write "</A> " 
    Next
    Response.Write ">>"
    
    'chiudi e distruggi il primo recordset
    objRS1.close
    set objRS1 = Nothing
    
    end if
    
    'chiudi e distruggi la connessione						
    conn.Close
    Set conn = Nothing
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  10. #10
    prima di settare absolutepage e pagesize devi controllare che il recordset sia pieno


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.