Newsgroup: it.comp.www.asp
Titolo: Quando effettivamente è meglio usare il cursore lato client?

Ciao a tutti,
allego parte del codice di una pagina che ho fatto per la navizazione tra i
record riportati tipo 1-10 | 11-20 | 21-30...
Praticamente è un "PAGING" di record che vengono visualizzati.
La mia domanda è praticamente questa: in che circostanze devo effettivamente
usare il cursore lato client?
Mi sono guardato un po' in giro per il web e comunque ho letto che è quasi
sempre meglio usare il lato server piuttosto che quello client. Però tanti
usano questo tipo di cursore nel paging???
Mi potreste dare dei chiarimenti.
Come DB uso mySQL e questa pagina non riporta un numero elevato di record
diciamo max 50.
In questo mio caso è corretto ciò che ho fatto?
La 2 domanda è come potrei fare per non riportare tutti i record nella
SELECT, quando diciamo io devo visualizzarne solo 10 alla volta. Se per
esempio avessi una tabella di 10.000 rs e volessi vederne 10 alla volta non
ha senso scorrere tutti i 10.000 per visualizzarne 10.
Il fatto è che ho trovato una Store Procedure che fa questo, ma come ho
detto sopra mySQL non le supporta.
Qualche consiglio su come partire integrandolo nel mio codice?
Ciao e grazie.
Alen
===============================================================
<%
 'Ritrova la pagina richiesta passando il valore
 Dim GoToPageNumber
    GoToPageNumber = CInt(Request("page"))
 'Se è 0, è la prima volta che entri nella pagina quindi mostra la prima
    If GoToPageNumber = 0 Then
      GoToPageNumber = 1
 elseif GoToPageNumber < 1 Then
   GoToPageNumber = 1
 end if
 'Record visualizzati di default nella pagina
 Dim SeeNumberRecords
    SeeNumberRecords = CInt(Request("recs"))
    If SeeNumberRecords = 0 Then
   SeeNumberRecords = 10
 end if
 'funzione apertura connessione
 openDBconn
'Variabili Rs
 Dim objRS
 Dim StrSQL
 Dim CountTotPages 'totale pagine
 Dim TotFoundRecords 'totale record trovati
    Set objRS = Server.CreateObject("ADODB.RecordSet")
    StrSQL = "SELECT * FROM test2"
    objRS.Open StrSQL, objconn, adOpenForwardOnly, adLockReadOnly, adCmdText
    objRS.PageSize = SeeNumberRecords 'Numero di records di default per
pagina
 objRS.CacheSize = SeeNumberRecords 'Chache come il n° di record che arriva
 CountTotPages = objRS.PageCount
 TotFoundRecords = objRS.RecordCount
 if  GoToPageNumber > CountTotPages then
   GoToPageNumber = CountTotPages
    End If
    'Vai alla pagina specificata
    objRS.Move (GoToPageNumber - 1) * objRS.PageSize
    'Per limitare la visualizzazione dei records
 Dim limit
    If objRS.AbsolutePage < objRS.PageCount Then
        limit = objRS.PageSize
    Else
        limit = objRS.RecordCount - objRS.PageCount * objRS.PageSize +
objRS.PageSize
    End If
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
            "
http://www.w3.org/TR/html4/strict.dtd
">
<html>
<head>
    <title>Record Paging Example</title>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<%
if objRS.EOF then
objRS.Close
Set objRS = Nothing
closeDBconn
response.write ("Nessun record presente")
else
    response.write("<strong>Totale pagine: </strong>" & objRS.PageCount &
"<br>")
 response.write("<strong>Totale records: </strong>" & objRS.recordCount &
"<br>")
    'Buttiamoli fuori....
 Dim iCounter
    For iCounter = 1 To limit
 if not objRS.EOF then
        Response.Write objRS.Fields("primo").Value & "<br>"
        objRS.MoveNext
 end if
    Next
-------------------------------------------------------------------
....continua...con i link del paging....

 detto sopra mySQL non le supporta.
MySql non supporta le stored procedure ma, volendo, si può implementare
qualcosa in ASP :) .
Antonino.