View Full Version : asp dividere la query su più pagine...
come faccio a dividere una normalissima qquey in più pagine??
Fa la tua query normalmente tutte le volte che la pagina viene caricata...
Poi nel recordset setti gli attributi:
rs.PageSize = 10 'i record visualizzati per pagina
rs.AbsolutePage = 1 'la pagina corrente
In questo modo rs.PageCount ti indicherà quante pagine puoi creare...
I record disponbili nel recordset sono a questo punto quelli relativi alla pagina... Ad esempio se rs.AbsolutePage è 2 sono i record dal 11 al 20... Ovviamnete AbsolutePage sarà il parametro che viene passato alla query string navigando tra pagina e pagina...
faccio così
Set objRecordset = objConnessione.Execute("SELECT * FROM Acquisti")
pag = Request.QueryString("pag")
objrecordset.PageSize = 2
objrecordset.AbsolutePage = pag
do while not objrecordset.Eof
Response.Write( objrecordset.Fields("Nome")&"<br>" )
objrecordset.MoveNext
loopSet objRecordset = objConnessione.Execute("SELECT * FROM Acquisti")
pag = Request.QueryString("pag")
objrecordset.PageSize = 2
objrecordset.AbsolutePage = pag
do while not objrecordset.Eof
Response.Write( objrecordset.Fields("Nome")&"<br>" )
objrecordset.MoveNext
loop
ma mi da questo errore
Il set di record corrente non supporta i segnalibri. Potrebbe trattarsi di una limitazione del provider o del tipo di cursore selezionato.
Prova ad aprirlo senza l'EXECUTE ma inq uesta maniera:
rs.Open sSql, cn, 1, 3
Dove sSql è la tua query
ok così va,ma mi stampa tutti i record...forse dovrei farlo con un for??
Originariamente inviato da SteR9
ok così va,ma mi stampa tutti i record...forse dovrei farlo con un for??
Prova ad impostare un ciclo del genere:
ni=0
while rs.EOF=false and ni<Rs.PageSize
ni=ni+1
.
.
.
.
.
rs.movenext
wend
Stai usando MySQL ? Allora mi sa che non lo supporta...
Con MySQL si fa facilmente:
"SELECT * FROM Acquisti LIMIT " & NumPerPagina*(ni-1) & ", " & NumPerPagina & ";"
Originariamente inviato da cionci
Stai usando MySQL ? Allora mi sa che non lo supporta...
Con MySQL si fa facilmente:
"SELECT * FROM Acquisti LIMIT " & NumPerPagina*(ni-1) & ", " & NumPerPagina & ";"
no...sto usando un dbase access...funziona benissimo come ha detto matpez..
grazie! :)
ho un problema all'interno del ciclo
vado a fare questa somma
totale = totale + objrecordset.Fields("TotaleSpesa")
che poi stampo quando esco dal ciclo e ho stampato tutto il recordset,però dividendo le pagine mi fa la somma dei record di ogni pagina...non si può fare in modo che per ogni pagina mi faccia la somma di tutto il recordset??
Per ottenere la somma di totale spesa per tutta la tabella puoi semplicemnte fare un'atra query:
SELECT Sum(TotaleSpesa) As Totale FROM Acquisti ;
Ti ritornarà un recordset con un solo record e con un solo campo di nome Totale...
Originariamente inviato da cionci
Per ottenere la somma di totale spesa per tutta la tabella puoi semplicemnte fare un'atra query:
SELECT Sum(TotaleSpesa) As Totale FROM Acquisti ;
Ti ritornarà un recordset con un solo record e con un solo campo di nome Totale...
Esattamente....quello che puoi fare con le query fallo il + possibile..i calcoli a mano rendono lento il sito e fanno fare solo casino (vedi il tuo problema)! :)
che stupido...vado sempre a complicarmi la vita quando esiste l'sql :D grazie!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.