uso questo codice per impaginare le ricerche fatte sul mio sito:
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 = adUseClient
' 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 = SQL
.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
il problema sorge quando la ricerca non produce alcun risultato, ho questo errore:
Microsoft VBScript runtime error '800a000d'
Type mismatch: 'arrData'
/2007/Programma-cerca-immobile.asp, line 127
Come ovviare?
Grazie
Luca

Rispondi quotando