Salve a tutti,
ho trovato del codice su di un sito per fare la paginazione efficiente con le pagine ASP ma in fase di compilazione mi da un errore. Questo è il codice:
codice:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
<title>Sans Titre</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="HAPedit 3.1">
</head>

<body bgcolor="#FFFFFF">
<%
Set objRecordset = Server.CreateObject("ADODB.Recordset")
' modificare il path per puntare correttamente al database
strConnection = "Provider=Microsoft.Jet.Oledb.4.0;data source=" & server.mappath("database.mdb")

' numero di record che vogliamo mostrare per pagina ? utilizziamo una costante
CONST RECORDMAX = 10
' controlla se sia stato passato il parametro <page>, cioè il numero di pagina
If Request.QueryString("page").Count > 0 Then
  intPageNum = CInt(Request.QueryString("page"))
Else
  intPageNum = 1 'non è stato passato, di default iniziamo dalla prima pagina
End If
With objRecordset
  ' il seguente è il tipo di cursore più performante ? non possiamo però utilizzare la proprietà RecordCount (poco importa, non ci serve in questa sede?)
  .CursorType = adOpenForwardOnly
  ' la localizzazione del cursore di default è lato server, noi la spostiamo sul client
  .CursorLocation = adUseClientBatch
  ' il tipo di Lock più performante
  .LockType = adLockReadOnly
  ' creiamo un buffer di memoria locale - dove verranno stipati i record - uguale a RECORDMAX
  .CacheSize = RECORDMAX
  .PageSize = RECORDMAX
  .Source = "SELECT * FROM tabella"
  .ActiveConnection = strConnection
  .Open ' eseguiamo la Query
  ' questo è importante: disconnettiamo il Recordset dalla sorgente dati (cioè il database).
  ' Uno dei maggiori vantaggi è dato dalla scalabilità: per 100 utenti che "scorrono" le pagine,
  ' non ci saranno altrettante connessioni e cursori aperti sul server. Per 1000 utenti idem.
  Set .ActiveConnection = Nothing
  intTotalPages = .PageCount
  If NOT .EOF then
    ' questo è importante: grazie al metodo GetRows dell'oggetto Recordset recuperiamo
    ' SOLTANTO il numero di record necessari per la pagina e li stipiamo in un array.
   .AbsolutePage = intPageNum
    arrData = .GetRows(RECORDMAX)
    intColsTot = Ubound(arrData,1) ' numero di colonne, cioè di campi
    intRowsTot = Ubound(arrData,2) ' numero di righe, cioè di records
  End If
End With
' Rilasciamo le risorse
objRecordset.Close:Set objRecordset = Nothing

' Questo ciclo mostra il contenuto dei campi di ciascun record
' ovviamente va adattato e reso meno "spartano" (è qui solo per esempio)
For i = 0 To intRowsTot
  Response.Write "
"
  For j = 0 To intColsTot
    Response.Write " "&arrData(j, i)
  Next
Next

'Pagina precedente ? mostra una freccia a sinistra
Response.Write "

"
If intPageNum > 1 Then
  Response.Write( "<-- ")
End If

'Mostra la pagina corrente in BOLD (non cliccabile) + tutte le altre (cliccabili)
For i = 1 to intTotalPages
  If i = intPageNum Then
    Response.Write(" "&i&"")
  Else
    Response.Write(" "&i&"")
  End If
Next

' Pagina successiva ? mostra una freccia a destra
If intPageNum < intTotalPages Then
  Response.Write( " -->")
End If

%> 
</body>

</html>
L'errore che mi ritorna il server è :

ADODB.Recordset (0x800A0BB9)
Gli argomenti non sono di tipo valido, non sono compresi nell'intervallo consentito o sono in conflitto.
/ASP/ripasso/paginazione/paginazione.asp, line 28

dove la riga 28 è

codice:
.CursorLocation = adUseClientBatch
Ho provato anche con adUseClient ma mi da lo stesso errore sapreste dirmi perchè da errore? Grazie