<%if len(Session("aperta")) > 0 then
idlineadicatalogo = Request.QueryString("idlineadicatalogo")
Session.LCID=1040
Set DatabaseWebStore = Server.CreateObject("ADODB.Connection")
DBString =""
DBString = DBString + "Driver={Microsoft Access Driver (*.mdb)};"
DBString = DBString + "Dbq=" & Server.MapPath(".") & "../../mdb-database/webstore.mdb;"
DBString = DBString + "Uid=Admin;"
DBString = DBString + "Pwd=;"
DatabaseWebStore.Open DBString
If Len(idlineadicatalogo) = 0 Then%>
<%Else%>
<%
Dim sqlquery
sqlquery = "select "
sqlquery = sqlquery & "ID, "
sqlquery = sqlquery & "Codice, "
sqlquery = sqlquery & "Denominazione, "
sqlquery = sqlquery & "Informazioni, "
sqlquery = sqlquery & "InformazioniEstese, "
sqlquery = sqlquery & "Confezione, "
sqlquery = sqlquery & "Prezzo, "
sqlquery = sqlquery & "RiferimentoDiIcona, "
sqlquery = sqlquery & "RiferimentoDiFoto "
sqlquery = sqlquery & "from "
sqlquery = sqlquery & "[Catalogo, Articoli] "
sqlquery = sqlquery & "where "
sqlquery = sqlquery & "IDLinea = " & idlineadicatalogo & " "
sqlquery = sqlquery & " And "
sqlquery = sqlquery & "InVendita=true "
Dim RecordsetArticoli
Set RecordsetArticoli = DatabaseWebStore.Execute(sqlquery)
%>
<%
Dim ID
Dim Codice
Dim Denominazione
Dim Informazioni
Dim InformazioniEstese
Dim Confezione
Dim Prezzo
Dim RiferimentoDiIcona
Dim RiferimentoDiFoto
%>
<%If RecordsetArticoli.EOF Then%>
<%Else%>
<TABLE BORDER=0 CELLSPACING=6 CELLPADDING=0>
<%if err=0 then
While Not RecordsetArticoli.EOF%>
<%
ID = RecordsetArticoli("ID")
Codice = RecordsetArticoli("Codice")
Denominazione = RecordsetArticoli("Denominazione")
Informazioni = RecordsetArticoli("Informazioni")
InformazioniEstese = RecordsetArticoli("InformazioniEstese")
Confezione = RecordsetArticoli("Confezione")
Prezzo = RecordsetArticoli("Prezzo")
RiferimentoDiIcona = RecordsetArticoli("RiferimentoDiIcona")
RiferimentoDiFoto = RecordsetArticoli("RiferimentoDiFoto")
%>
<TR VALIGN="TOP">
<TD>
<%If RiferimentoDiIcona <> "" Then%>
<A HREF="scheda_articolo.asp?idarticolo=<%=ID%>">
<IMG SRC="<%=RiferimentoDiIcona%>" BORDER=0 width="32" height="32">
</A>
<%else%>
<%End If%>
</TD>
<TD>
<A HREF="scheda_articolo.asp?idarticolo=<%=ID%>">
<B><%=Denominazione%></B>
</A>
<BR>
<%=Informazioni%>
<P>
<B>Prezzo ? <%=FormatNumber(Prezzo, 2, -1, 0, -1)%></B>
</TD>
<TD valign=bottom>
<A HREF="carrello.asp?idarticolo=<%=ID%>">
<IMG SRC="icons/cart.gif" alt="Inserisci nel carrello" BORDER=0>
</A>
</TD>
</TR>
<TR><TD colspan=3> </TD></TR>
<%RecordsetArticoli.MoveNext%>
<%Wend
end if%>
</TABLE>
<%End If%>
<%End If%><%
' numero di record che vogliamo mostrare per pagina ? utilizziamo una costante
CONST RECORDMAX = 5
' controlla se sia stato passato il parametro <page>, cioè il numero di pagina
If Request.QueryString("page").Count > 0 Then
intPageNum = CInt(Request.QueryString("page"))
Else
intPageNum = 1 'non è stato passato, di default iniziamo dalla prima pagina
End If
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 = "SELECT * FROM [Catalogo, Articoli]"
.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
.AbsolutePage = intPageNum
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.
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
' Rilasciamo le risorse
objRecordset.Close:Set objRecordset = Nothing
' Questo ciclo mostra il contenuto dei campi di ciascun record
' ovviamente va adattato e reso meno "spartano" (è qui solo per esempio)
For i = 0 To intRowsTot
Response.Write "<BR>"
For j = 0 To intColsTot
Response.Write " "&arrData(j, i)
Next
Next
'Pagina precedente ? mostra una freccia a sinistra
Response.Write "<P>"
If intPageNum > 1 Then
Response.Write( "<a href=""?page=" & intPageNum-1 &"""><-- </a>")
End If
'Mostra la pagina corrente in BOLD (non cliccabile) + tutte le altre (cliccabili)
For i = 1 to intTotalPages
If i = intPageNum Then
Response.Write(" <b>"&i&"</b>")
Else
Response.Write("<a href=""?page="&i&"""> "&i&"</a>")
End If
Next
' Pagina successiva ? mostra una freccia a destra
If intPageNum < intTotalPages Then
Response.Write( "<a href=""?page=" &intPageNum+1&"""> --></a>")
End If
%>
<%
RecordsetArticoli.Close
Set RecordsetArticoli = Nothing
DatabaseWebStore.Close
Set DatabaseWebStore = Nothing
else%>
<H4><a href="elenco_linee.asp">La sessione è scaduta. Torna all'Home Page</a></H4>
<%end if
%>
ma ho questo errore:
Microsoft VBScript runtime error '800a01a8'
Object required: 'objRecordset'
/confna/elenco_articoli.asp, line 130
mi aiutate?