Buonasera.
Se ho questo codice, che visualizza 3 records alla volta estratti da un query:
Se strVar è diverso da 3 il ciclo va in errore, perchè?codice:strVar = 3 For i = 1 to strVar ... next
Buonasera.
Se ho questo codice, che visualizza 3 records alla volta estratti da un query:
Se strVar è diverso da 3 il ciclo va in errore, perchè?codice:strVar = 3 For i = 1 to strVar ... next
"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
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!
Dice eccezione.Originariamente inviato da maximum
In che senso va in errore?
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
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!
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 impappinatoOriginariamente inviato da maximum
Scusa la digressione, ma non puoi usare il codice di Roby?)
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
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!
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.Originariamente inviato da maximum
E' il primo o il secondo FOR che dà problemi?
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
secondo me perchè devi mettere dopo il for
perchè se alla Pagina X objRs1 ha 10 record e tu ne vuoi visualizzare 13, tira (o dovrebbe) tirare fuori un errorecodice:for i=1 to recordPerPagina if not objRS1.eof then ... ... objRS1.movenext end if next
![]()
Grazie Santino83... adesso l'errore di eccezione è sparito ma ne restituisce un altro quando non ha records da estrarre:
Codice aggiornato:ADODB.Recordset error '800a0bcd'
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.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
prima di settare absolutepage e pagesize devi controllare che il recordset sia pieno
![]()