Salve a tutti!
Sto realizzando una pagina ASP che mi consenta di "paginare" i Record in Output di una Query..
Il DataBase che purtroppo sono costretto ad utilizzare è realizzato in Microsoft Access 2000..
Avevo dunque ben pensato di costruirmi un mini-algoritmo per la paginazione ricavando il numero di pagina attuale (tramite querystring), il numero di pagine da allocare (tramite una SELECT COUNT(*)) e mandare in pasto all'SQL una bella Query di questo tipo:
codice:
Sql = "SELECT * FROM Cie ORDER BY cognome LIMIT " & inizio & ", " & offset & ";"
tuttavia con estremo TERRORE ho appena scoperto che l'MSSQL non dispone dell'istruzione LIMIT nella sua sintassi e che l'unica istruzione ad essa più vicina è la
Tale istruzione però non fa al caso mio, oltre a selezionare le Tuple sempre a partire dalla prima ha anche l'enorme difetto di non "limitare" la selezione alla n-esima riga in presenza della Clausola ORDER BY!!!
VVoVe:
In pratica nel mio caso se uso SELECT TOP 2 mi restituisce le prime 4 tuple perchè nelle tuple numero 2, 3 e 4 il cognome è il medesimo..
A questo punto ho provato a pensare alla soluzione più "sporca" travasando l'intero RecordSet in un Array BiDimensionale (matrice) con lunghezza dinamica (che ricavo tramite il Count(*) della query)
Tuttavia se dichiaro così l'Array:
codice:
Dim arrayRecord(numtotale)(campi)
mi da un errore dicendo che ha bisogno di costanti intere nella dichiarazione...
Se la provo in maniera brutale:
codice:
Dim arrayRecord(2000)(2000)
Mi dice Errore di compilazione di Microsoft VBScript (0x800A0401)
Prevista fine istruzione
A questo punto sono in preda alla disperazione più totale
Vi prego di aiutarmi.. come posso dichiarare l'Array? esiste un'alternativa al LIMIT in MSSQL???
Vi prego ditemi di si...