12 messaggi dal 14 marzo 2005
Ciao ho un problema.
Ho modificato il codice , senza cambiare nulla di importante (o almeno credo) e funziona parzialmente.
Se richiamo la pagina passando due parametri Post come di seguito

http://localhost/Report/pippo.asp?page=1&anno=2005&mese=01

mi restituisce i giusti risultati con la giusta paginazione.
Il problema sorge nel caso in cui un parametro, passato in POST, non esista nel DB.

Ad esempio se dicembre 2005 non esiste mi restituisce il seguente errore :
ADODB.Recordset (0x800A0BCD)
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

Per chiarezza ti allego il codice:

<%
RecordsPerPagina = 5

page = Request("page")
if page="" then page=1
stranno = Request("anno")
strmese = Request("mese")

Dim Conn
Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& server.MapPath("Emissionerapporti.mdb")
Set Rs = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM ReportProblemMese WHERE Periodo LIKE '%" & stranno &""& strmese &"%'"
rs.open sql, conn, 1, 3

rs.PageSize = RecordsPerPagina
rs.AbsolutePage = page
If rs.Eof=True or rs.Bof=True then
Response.Write ("<P>Report non disponibile</P>")
Response.Write ("<P>Report non disponibile</P>")
Response.Write ("<P>Report non disponibile</P>")
Response.Write ("<P>Report non disponibile</P>")
Else
For i=1 to RecordsPerPagina
if Not rs.EOF then
Response.Write ("Minore DI DIECIIIIII")
Response.Write ("<table width=900> ")
Response.Write ("<td width=130 bgcolor=#aaccee border=0> ")
Response.Write ("<font size=2 face=Verdana color=#000000><b>Servizio</b></font> ")
Response.Write ("</td> ")
if Rs("disservizio") = "True" then
Response.write "<td bgcolor=#ffffff><font color=red> Disservizio </font></td>"
else
Response.write "<td bgcolor=#ffffff><font color=green>No disservizio</font></td>"
end if
Response.Write ("<td width=770 bgcolor=#FFFFCC border=0> ")
Response.Write ("<font size=2 face=arial><b>" & Rs("Servizio") & "<b></font> ")
Response.Write ("<font size=2 face=arial><b>" & Rs("inizio") & "<b></font> ")
Response.Write ("</td> ")
Response.Write ("</table>")
rs.MoveNext
end if
Next
End if
%>
Prova Report
<%
Response.Write "<P><B>Pagine:</B> "
For pag=1 to rs.PageCount
Response.Write "<A href='pippo.asp?page=" & pag
Response.Write "&anno=" & Server.UrlEncode(stranno)
Response.Write "&mese=" & Server.UrlEncode(strmese)
Response.write "'>"
Response.Write pag
Response.Write "</A> "
Next
Response.Write "</P>"
%>

Grazie,
Massimiliano.
devi spostare il blocco
rs.PageSize = RecordsPerPagina 
rs.AbsolutePage = page

subito dopo Else, altrimenti quando il rs tenta di modificare la proprietà ottieni questo errore.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
12 messaggi dal 14 marzo 2005
Wow,,,velocissimo,,, FUNZIONA!!!!

Grazie,
Max.

prego. è il bello di usare la funzione di commento, l'autore riceve una notifica e sei quasi sicuro che risponda

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
12 messaggi dal 14 marzo 2005
Domandone ?????
Chiudere il recordset è opzionale?
Se volessi ordinare i dati come potrei fare?

Grazie,
Max.
maxche79 wrote:
Chiudere il recordset è opzionale?
no, è sempre obbligatorio
Se volessi ordinare i dati come potrei fare?
prendi spunto dagli script
#408
#231

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
12 messaggi dal 14 marzo 2005
Il problema sorge nel codice di cui sopra quando gli passo in post il nome del campo da ordinare .

es:SQL = "SELECT * FROM ReportProblemMese WHERE Periodo LIKE '%" & stranno &""& strmese & "%' order by '"& strordina &"' "

Bo?
order by "& strordina &" "

senza i ', non stai passando una stringa, ma il nome di un campo.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.