il codice che segue, funziona perfettamente
se però nelle query sql, al posto dei valori di "betwen" e "order by"
sostituisco con le opportune variabili, dichiarate e con i relativi valori
prelevati da un form, non funziona più la paginazione, ovvero viene restituita
a video la 1 pagina ma quando si clicca sul link per avere la seconda viene generato un
errore del tipo "il driver odbc non supporta ... ecc."
questo di seguito è il codice che funziona bene:
<%@language=vbscript%>
<%option explicit%>
<html>
<head>
<meta http-equiv="Content-Language" content="it">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Ricerca articoli</title>
<bgsound src="GIAVA_01.MID" loop="-1">
</head>
<body background="file: ../matt.gif">
<!-- #INCLUDE FILE="adovbs.inc" -->
<% 'legge dal form
dim codice, categoria, prezzo, target, prodotto,miniatura,prezzominimo,page
dim prezzomassimo,disponibiledat,disponibiledal,i,strorderby
dim peso, note,pagine
categoria=request.form("categoria")
prezzominimo =Request.form("prezzominimo")
prezzomassimo = Request.form("prezzomassimo")
target=request.form("target")
prodotto=request.form("prodotto")
if categoria="selezionare" then categoria="%"
if target="selezionare" then target="%"
if prodotto="selezionare" then prodotto="%"
%>
<%
Dim objconn
'La solita variabile di connessione
Dim iPageSize
'Numero di record da visualizzare per ogni pagina
Dim iPageCount
'Numero di pagine totali che otteniamo dalla query
Dim iPageCurrent
'Pagina corrente
Dim SQL
Dim RS
'Il nostro solito recordSet
Dim iRecordsShown
ipagesize=5
page=request("page")
if page="" then page=1
strorderby=request.form("ordering")
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\3112\eligioielli\fpdb\eliart.mdb "
Set RS = Server.CreateObject("ADODB.Recordset")
%>
<%
sql= "select * from tabella1 where categoria like '%"&categoria&"%' and target like '%"&target&"%' and codice like '%"&codice&"%' and miniatura like '%"&miniatura&"%' and disponibiledat like '%"&disponibiledat&"%' and disponibiledal like '%"&disponibiledal&"%' "
sql=sql&"AND prezzo BETWEEN 2 AND 1500 "
RS.Open sql, objconn, adOpenKeyset
rs.pagesize=ipagesize
rs.absolutepage=page
miniatura=rs("MINIATURA")
if rs.eof=true or rs.bof=true then
response.write "<p>Nessun risultato trovato</p>"
else
%>
<center>
<b><h3> '<% response.write "Trovati " & rs.recordcount & " prodotti corrispondenti " %></h3></b><br>
<%
for i=1 to ipagesize
if not rs.eof then
%>
<div align="left">
<p>
<table border="0" width="100%" height="161">
<tr>
<p><td width="45%" height="155" valilgn="top"><font face="Times New Roman" color="#333300" size="2"><b>codice articolo</b></font><BR>
<font face="Times New Roman" color="#333300" size="2"><%response.write(rs("codice"))%></font><BR>
<font face="Times New Roman" color="#333300" size="2"><%response.write (rs("categoria"))%></font><BR>
<font face="Times New Roman" color="#333300" size="2"><%response.write (rs("prodotto"))%></font><BR>
<font face="Times New Roman" color="#333300" size="2"><%response.write (rs("disponibiledat"))%></font><BR>
<font face="Times New Roman" color="#333300" size="2">a disposizione dal...<%response.write (rs("disponibiledal"))%></font><BR>
<font face="Times New Roman" color="#006600" size="2">prezzo euro<%response.write (rs("prezzo"))%></font><BR>
<td width="30%" height="155" valilgn="center"><%=(" <IMG SRC="&MINIATURA&" WIDTH=65 HEIGHT=55 BORDER=1>")%></b></font></a><br>
<td width="25%" height="155"></td>
</tr>
</table>
<%
rs.movenext
end if
next
end if
%>
<% response.write "<p><b>Pagine:</b>"
for pagine=1 to rs.PageCount
response.write"<a href='elipagine3-2nv.asp?page=" &pagine
response.write "&" & server.urlencode(strorderby)
response.write "'>"
response.write pagine
response.write "</a>"
next
response.write "</p>"
%>
<%
RS.Close
Set RS = Nothing
objConn.Close
%>
</BODY>
</html>
Fine del codice che funziona bene
questo che segue invece è il codice che, con la sola differenza delle variabili inserite al posto dei valori di
between e order by, non funziona:
<%@language=vbscript%>
<%option explicit%>
<html>
<head>
<meta http-equiv="Content-Language" content="it">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Ricerca articoli</title>
<bgsound src="GIAVA_01.MID" loop="-1">
</head>
<body background="file: ../matt.gif">
<!-- #INCLUDE FILE="adovbs.inc" -->
<% 'legge dal form
dim codice, categoria, prezzo, target, prodotto,miniatura,prezzominimo,page
dim prezzomassimo,disponibiledat,disponibiledal,i,strorderby
dim peso, note,pagine
categoria=request.form("categoria")
prezzominimo =Request.form("prezzominimo")
prezzomassimo = Request.form("prezzomassimo")
target=request.form("target")
prodotto=request.form("prodotto")
if categoria="selezionare" then categoria="%"
if target="selezionare" then target="%"
if prodotto="selezionare" then prodotto="%"
%>
<%
Dim objconn
'La solita variabile di connessione
Dim iPageSize
'Numero di record da visualizzare per ogni pagina
Dim iPageCount
'Numero di pagine totali che otteniamo dalla query
Dim iPageCurrent
'Pagina corrente
Dim SQL
Dim RS
'Il nostro solito recordSet
Dim iRecordsShown
ipagesize=5
page=request("page")
if page="" then page=1
strorderby=request.form("ordering")
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\3112\eligioielli\fpdb\eliart.mdb "
Set RS = Server.CreateObject("ADODB.Recordset")
%>
<%
sql= "select * from tabella1 where categoria like '%"&categoria&"%' and target like '%"&target&"%' and codice like '%"&codice&"%' and miniatura like '%"&miniatura&"%' and disponibiledat like '%"&disponibiledat&"%' and disponibiledal like '%"&disponibiledal&"%' "
sql=sql&"AND prezzo BETWEEN "&CInt(prezzominimo)&" AND "&CInt(prezzomassimo)&" "
sql=sql&"ORDER BY prezzo "&strOrderBy&" ASC"
RS.Open sql, objconn, adOpenKeyset
rs.pagesize=ipagesize
rs.absolutepage=page
miniatura=rs("MINIATURA")
if rs.eof=true or rs.bof=true then
response.write "<p>Nessun risultato trovato</p>"
else
%>
<center>
<b><h3> '<% response.write "Trovati " & rs.recordcount & " prodotti corrispondenti " %></h3></b><br>
<%
for i=1 to ipagesize
if not rs.eof then
%>
<div align="left">
<p>
<table border="0" width="100%" height="161">
<tr>
<p><td width="45%" height="155" valilgn="top"><font face="Times New Roman" color="#333300" size="2"><b>codice articolo</b></font><BR>
<font face="Times New Roman" color="#333300" size="2"><%response.write(rs("codice"))%></font><BR>
<font face="Times New Roman" color="#333300" size="2"><%response.write (rs("categoria"))%></font><BR>
<font face="Times New Roman" color="#333300" size="2"><%response.write (rs("prodotto"))%></font><BR>
<font face="Times New Roman" color="#333300" size="2"><%response.write (rs("disponibiledat"))%></font><BR>
<font face="Times New Roman" color="#333300" size="2">a disposizione dal...<%response.write (rs("disponibiledal"))%></font><BR>
<font face="Times New Roman" color="#006600" size="2">prezzo euro<%response.write (rs("prezzo"))%></font><BR>
<td width="30%" height="155" valilgn="center"><%=(" <IMG SRC="&MINIATURA&" WIDTH=65 HEIGHT=55 BORDER=1>")%></b></font></a><br>
<td width="25%" height="155"></td>
</tr>
</table>
<%
rs.movenext
end if
next
end if
%>
<% response.write "<p><b>Pagine:</b>"
for pagine=1 to rs.PageCount
response.write"<a href='elipagine3-2nv.asp?page=" &pagine
response.write "&" & server.urlencode(strorderby)
response.write "'>"
response.write pagine
response.write "</a>"
next
response.write "</p>"
%>
<%
RS.Close
Set RS = Nothing
objConn.Close
%>
</BODY>
</html>
qualcuno ma può aiutare a capire ??