- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- [ASP] Strana questione con Absolutepage
-
[ASP] Strana questione con Absolutepage
Salve a tutti
una questione strana, come al solito
Mi trovo per la prima volta a sviluppare un sito su un nuovo server che non conosco
ho notato andando a fare una semplice paginazione che dopo avere aperto il recordset stando ancora nella prima pagina response.write rs.AbsolutePage mi stampa -1...
scrivo un pò di codice per capirsi:
Sub Ricerca
cn.open
set rs = Server.CreateObject("ADODB.Recordset")
sSql = "Select * from Tbl"
rs.Open sSql, cn, 3, 3if not rs.eof then response.write rs.AbsolutePage rs.close set rs = nothing cn.close exit sub ecc...............
Come dicevo stampa -1...
com'è possibile ? Da cosa può dipendere secondo voi?
-
Ciao scura,
prova a cambiare cursore:
rs.Open sSql, cn, **1**, 3
-
Guà fatto ho provato anche questa, nada...può dipendere dal Server ?
-
Non vorrei sbagliare ma la proprietĂ AbsolutePage dell'oggetto ADODB.Recordset va necessariamente ed esplicitamente inizializzata ad 1 poi la puoi aggiornare (tramite QueryString, Variabili di Sessione, ecc...), ad esempio:
If Request.QueryString("page") = "" Then ' Prima Pagine iPageCurrent = 1 Else ' Pagine successive da Querystring iPageCurrent = CInt(Request.QueryString("page")) End If [...] ' Costruisco la query... [...] ' Apro il Recordset RS.Open strSQL, Conn, 3, 3 ' Vado alla pagina Num. iPageCurrent: RS.AbsolutePage = iPageCurrent iRecordCount = RS.RecordCount [...]
-
In effetti ho riportato solo una parte per farmi capire, ma ho provato anche così:
Sub nomeSub
cn.open
set rs = Server.CreateObject("ADODB.Recordset")
sSql = "Select * from Tbl"
rs.Open sSql, cn, 1, 3if not rs.eof then 'imposto numero rec per pagina rs.PageSize = 2 if request.Querystring("page")<>"" then rs.AbsolutePage = Cint(request.Querystring("page")) else rs.AbsolutePage = 1 end if response.write rs.AbsolutePage exit sub
ecc...
... ancora non ho passato nulla per query , sono nella pagina 1 ...ma stampa sempre -1
-
Help! non sono ancora riuscita a risolvere
una cosa così davvero non mi era ancora capitata: posto tutta la mia sub...ma l'errore non sembra essere nel codice, ho spostato il tutto su un altro server e comunque l'errore resta... a sto punto può dipendere dal DB Access ????
Sub Ricerca
cn.open set rs = Server.CreateObject("ADODB.Recordset") sSql = "Select * from Tbl_Immobili" rs.Open sSql, cn, 3, 3 if rs.eof then response.write "Nessun Record" cn.close exit sub end if 'imposto numero rec per pagina rs.PageSize = 2 if request.Querystring("page")<>"" then rs.AbsolutePage = Cint(request.Querystring("page")) else rs.AbsolutePage = 1 end if response.write rs.AbsolutePage 'exit sub 'recupero il numero di pagine numpag = rs.PageCount paginazione = navigatore(rs) For j=1 to rs.PageSize 'if ((j mod 2) = 0) then 'bg_color = "bgcolor=""#eeeeee"" " 'else 'bg_color = "bgcolor=""#F1FAFF"" " 'end if str = str&"<tr "&bg_color&"><td>"&rs("dataInserimento")&"</td><td><a href=""immobili.asp?act=schedaImmobile&idI="&rs("id")&""">scheda</a></td><td><a href=""immobili.asp?act=eliminaImmobile&idI="&rs("id")&""">elimina</a></td></tr>" rs.movenext if rs.EOF then exit for next response.write "<table>"&str&"</table>"&paginazione cn.close
end sub
-
risolto cambiando la stringa di connessione al db:
DA:
cnStr = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath(""&percorso&"")&"/DB/data.mdb"A:
cnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = "&Server.MapPath(""&percorso&"")&"/DB/data.mdb"& ";Persist Security Info = False"
-
@scura said:
risolto cambiando la stringa di connessione al db:
DA:
cnStr = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath(""&percorso&"")&"/DB/data.mdb"A:
cnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = "&Server.MapPath(""&percorso&"")&"/DB/data.mdb"& ";Persist Security Info = False"Ciao scura,
non mi ero mai trovato davanti a quell'errore, grazie per il feedback
A presto
-
Neanche a me era mai successa una cosa del genere, ma penso ci debba essere una spiegazione a tutto... almeno per queste cose, altrimenti non è chiaro
qualcuno sa ipotizzare almeno qualcosa ?