Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2013
    Messaggi
    3

    Paginazione dei risultati di query molto lunghe in ASP

    Mi sono imbattuto in questo problema che non riesco a risolvere:

    Devo ordinare dei dati di un database di access con due pagine asp: query.asp e test.asp;
    la query genera una lista lunghissima che devo paginare su più pagine. Bene su test.asp se utilizzo la linea 49 tutto ok se invece utilizzo la linea 48 la prima pagina è ok ma se vado su un'altra pagina utilizzando i link in basso mi da il seguente errore:

    Tipo di errore:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
    Il driver ODBC non supporta le proprietà richieste.
    /test.asp, line 48

    Posto i relativi codici:

    query.asp

    <html>
    <head>

    <title>Query</title>

    </head>

    <body>


    <p class="Stile2"></p>
    <p class="Stile1">Ricerca sul Database </p>
    <hr>
    <p align="justify" class="Stile2"></p>

    <form method="post" action="test.asp">

    <p align="center" class="Stile2"><span class="Stile2">Ordina per:</span>
    <select name="Filtro1">
    <option value="Cognome" >Cognome
    <option value="Eta" >Eta
    </select>
    <span class="Stile2">e per:</span>
    <select name="Filtro2">
    <option value="Cognome" >Cognome
    <option value="Eta" >Eta
    </select>





    <input type="submit" value="Filtra">
    </form>
    </p>
    </body>
    </html>




    test.asp

    <%@LANGUAGE = VBScript%>
    <%


    ' Rileva le variabili del form

    Filtro1 = Request( "Filtro1" )
    Filtro2 = Request( "Filtro2" )



    ' DEFINISCO LE VARIABILI CHE MI SERVONO PER L'APPLICAZIONE
    Dim sc, cn, rs, quanti, pag, contatore

    ' DEFINISCO LA STRINGA DI CONNESSIONE
    sc = ""
    sc = sc & "driver={Microsoft Access Driver (*.mdb)};dbq="
    sc = sc & Server.MapPath("database.mdb")

    ' IMPOSTO LA CONNESSIONE EDIL RECORDSET
    Set cn = Server.CreateObject("ADODB.Connection")
    Set rs = Server.CreateObject("ADODB.Recordset")

    ' APRO LA CONNESSIONE COL DATABASE
    cn.Open sc

    ' DEFINISCO IL NUMERO DI RECORD DA VISUALIZZARE PER OGNI PAGINA
    quanti = 5

    ' RECUPERO IL NUMERO DI PAGINA CORRENTE
    ' E CONTROLLO CHE NON SIA INFERIORE A 1
    pag = Request.QueryString("pag")
    If IsNumeric(pag) = False Or pag < 1 Then pag = 1

    ' IMPOSTO UN CONTATORE
    contatore = 0
    %>
    <html>
    <head>
    <title>Paginazione dei risultati di query molto lunghe in ASP</title>
    <style>a { color: blue; }</style>
    </head>
    <body>

    <table align="center" width="518" border="1">
    <%
    ' APRO IL RECORDSET
    rs.Open "SELECT Cognome, Nome, Indirizzo, Citta, Eta FROM Utenti ORDER BY "& Filtro1 &", "& Filtro2 &"", cn, 1
    ' rs.Open "SELECT Cognome, Nome, Indirizzo, Citta, Eta FROM Utenti ORDER BY Eta, Cognome", cn, 1
    ' EFFETTUO MATERIALMENTE LA PAGINAZIONE
    rs.PageSize = quanti
    rs.AbsolutePage = pag
    ' ESEGUO IL CICLO
    While rs.EOF = False And contatore < quanti
    %>
    <tr>
    <td width="69"><%=rs("Cognome")%></td>
    <td width="69"><%=rs("Nome")%></td>
    <td width="226"><%=rs("Indirizzo")%></td>
    <td width="59"><%=rs("Citta")%></td>
    <td width="61"><%=rs("Eta")%></td>
    </tr>
    <%
    rs.MoveNext
    ' INCREMENTO IL VALORE DEL CONTATORE
    contatore = contatore + 1
    Wend
    %>
    </table>
    <p align="center">
    <%If pag > 1 Then%>
    Indietro
    <%End If%>
    <%
    Dim x
    x = 1
    For x = 1 To rs.PageCount
    If CInt(pag) <> x Then
    %>
    [<%=x%>]
    <%
    Else
    %>
    [<%=x%>]
    <%
    End If
    Next
    %>
    <%If rs.EOF = False Then%>
    Avanti
    <%End If%>
    </p>

    </body>
    </html>
    <%
    ' UN PO DI PULIZIA...
    rs.Close
    Set rs = Nothing
    cn.Close
    Set cn = Nothing
    %>

    Qualcuno mi può aiutare?
    Grazie

  2. #2
    linea 48? linea 49? cosa sono?

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2013
    Messaggi
    3
    linea 48:

    rs.Open "SELECT Cognome, Nome, Indirizzo, Citta, Eta FROM Utenti ORDER BY "& Filtro1 &", "& Filtro2 &"", cn, 1

    linea 49:

    rs.Open "SELECT Cognome, Nome, Indirizzo, Citta, Eta FROM Utenti ORDER BY Eta, Cognome", cn, 1

  4. #4
    linea 48:


    ----------------------------------------------------
    impariamo a fare un po' di debug

    Dim SQL
    Sql="SELECT Cognome, Nome, Indirizzo, Citta, Eta FROM Utenti ORDER BY " & Filtro1 & ", " & Filtro2 & ""
    Response.Write "maGGica SQL...: " & sql & "
    "
    Response.Flush
    rs.Open SQL, cn, 1

    poi posta quello che viene a video
    ----------------------------------------------------

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2013
    Messaggi
    3
    maGGica SQL...: SELECT Cognome, Nome, Indirizzo, Citta, Eta FROM Utenti ORDER BY Eta, Cognome
    Di Paola Salvatore via Dei Limoni n. 24 Milano 15
    Miceli Teresa via Giannettino n. 987 Napoli 15
    Gennaro Gabriella via Dei Serpenti n. 1 Alghero 18
    Di Stefano Stefania via Giuseppe Verdi n. 18 Salerno 21
    D'arco Giovanna via Narbone n. 15 Pisa 25

    [1] [2] [3] [4] Avanti


    * chiaramente i nominativi e gli indirizzi sono inventati.

    cliccando su avanti o su un num. di pagina mi da il seg. errore:

    maGGica SQL...: SELECT Cognome, Nome, Indirizzo, Citta, Eta FROM Utenti ORDER BY ,

    Microsoft OLE DB Provider for ODBC Drivers error '80040e21'

    Il driver ODBC non supporta le proprietà richieste.

    /test/test.asp, line 53

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.