Newsgroup: it.comp.www.asp
Titolo: Errore di paginazione

Un saluto a tutti.
Ho adattato lo script per la paginazione, prelevato su 
aspcode.it
, ad una
mia pagina asp con access come DB e ho potuto notare quanto segue (l'ho
testato solo in locale su IIS 5):
se la stringa sql usata per aprire il recordset é, diciamo cosi' di tipo
semplice, es.
"select * from Tabella,"
 non ci sono problemi,  la paginazione funziona a meraviglia, ma se tento di
usare una query un po' piu' complessa tipo:
SELECT Tab_Dati_Anagrafica.Codice_Fiscale, [Cognome] & "," & [Nome] AS
Nominativo, Tab_Dati_Anagrafica.Data_Nascita,
Tab_Acc_Comuni.Comune_Descrizione
FROM Tab_Dati_Anagrafica LEFT JOIN Tab_Acc_Comuni ON
Tab_Dati_Anagrafica.Luogo_Nascita = Tab_Acc_Comuni.Comune_Codice_Istat
WHERE ((([Cognome] & "," & [Nome]) Like "'*strRicerca*'"))
ORDER BY [Cognome] & "," & [Nome];
lo script mi restituisce regolarmente la prima pagina con i primi 10 record
(come stabilito) e in coda i link alle altre pagine, ma se provo a cliccare
su uno di essi mi da' il seguente errore:
Tipo di errore: ADODB.Recordset (0x800A0BB9) Gli argomenti non sono di tipo
valido, non sono compresi nell'intervallo consentito o sono in conflitto.
Non sono riuscito a capire dove possa essere l'errore.
Grazie
Ciao!
P.S. per completezza vi riporto lo script che ho adattato:
<%
'Numero di record visualizzati per pagina
Record_Pagina = 10
'Numero di Pagine visualizzate nei link
Numerazione_Max = 7
'Creo la connessione al database
Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open .......
'Scrivo la mia query sql
sql = "SELECT * FROM nome_tabella"
'E creo il recordset
Set Rec = Server.CreateObject ("ADODB.Recordset")
Rec.PageSize = Record_Pagina
Rec.Open sql, Conn, 3, 3
'Recupero il numero della pagina corrente
Pag = CInt(Request.Querystring("pag"))
'Controllo che il numero di pagina sia corretto
If (Not Rec.Eof) Then
  If Pag>Rec.PageCount Then
    Pag = Rec.PageCount
  End If
  If Pag = 0 Then
    Pag = 1
  End If
  'Setto la pagina corrente
  Rec.AbsolutePage = Pag
  'Ora prepariamo i link alle pagine
  indice_inizio = pag-(Numerazione_Max/2)
  If (indice_inizio>(Rec.PageCount-Numerazione_Max)) Then
    indice_inizio = Rec.PageCount-Numerazione_Max+1
  End If
  If (indice_inizio<=0) Then
    indice_inizio = 1
  End if
  indice_fine=indice_inizio+Numerazione_Max-1
  If (indice_fine>Rec.PageCount) Then
    indice_fine = Rec.PageCount
  End If
  'Link alla prima pagina
  Link = "<a href=""?pag=1""><|</a>  "
  'Link alle pagine precedenti
  If (indice_inizio<>1) Then
    Link=Link&"<a href=""?pag="&(indice_inizio-1)&""">... "
  End If
  For i=indice_inizio to indice_fine
  'Pagina attuale
  If (i=pag) then
    Link = Link&"<b>]"&i&"[</b> "
  'Link alle altre pagine
  Else
    Link = Link&"<a href=""?pag="&i&""">["&i&"] "
  End If
  Next
  'Link alle pagine successive
  If (indice_fine<Rec.PageCount-1) Then
    Link = Link&"<a href=""?pag="&(indice_fine+1)&""">... "
  End If
  'Link all'ultima pagina
  Link=Link&"<a href=""?pag="&Rec.PageCount&""">|>  "
End If
'I link sono pronti,ora stampiamo i record ..
i=0
While (NOT rec.EOF)and(i<Record_Pagina)
  i = i+1
  Response.Write( rec("NOME_CAMPO")&"<br>" )
  rec.MoveNext
WEnd
'e ora finalmente stampiamo i link alle altre pagine
Response.Write(Link)
%>
............. cut
Set OConn = Server.CreateObject("ADODB.Connection")
OConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" &
server.MapPath("/applicazione/_applDB/store.mdb")
sSql = "SELECT * FROM Tabella1  WHERE codice='" & vCodStru & "' " & _
       "ORDER BY Impegni;"
'E creo il recordset
Set rs = Server.CreateObject ("ADODB.Recordset")
rs.PageSize = Record_Pagina
rs.Open sSql, OConn, 3, 3
'Recupero il numero della pagina corrente
Pag = CInt(Request.Querystring("pag"))
.............. cut

 (l'ho testato solo in locale su IIS 5):
Prova con:
Set rs = Server.CreateObject ("ADODB.Recordset")
rs.Open sSql, OConn, 1, 3
rs.PageSize = Record_Pagina
Ciao
-- 
AZ [Microsoft - .NET MVP]
Mia Home page: 
http://ciclismo.sitiasp.it
Asp.Net community: 
http://www.aspitalia.com
Il mio blog: 
http://blogs.aspitalia.com/az

 Ciao
Sě cosě effettivamente funziona ma non del tutto ancora, nel senso che 
adesso vedo la prima pagina con i record selezionati ed i link alle 
altre pagine impostati, ma se clicco su uno di essi ricarica tutta la 
tabella con tutti i records e perdo completamente il filtro della query.
Mah.....!!!
Grazie ... comunque
ciao

 ciao
Controlla di passare a ogni pagina tutti i parametri per la corretta
esecuzione della query, solitamente il problema č lě.
