• User Attivo

    [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, 3

    	if 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?


  • User Attivo

    Ciao scura,

    prova a cambiare cursore:

    
    rs.Open sSql, cn, **1**, 3
    
    

  • User Attivo

    Guà fatto ho provato anche questa, nada...può dipendere dal Server ?


  • Moderatore

    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
    [...]
    
    

  • User Attivo

    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, 3

    	if 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


  • User Attivo

    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


  • User Attivo

    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"


  • User Attivo

    @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 :ciauz:


  • User Attivo

    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 ?