Newsgroup: it.comp.www.asp
Titolo: form di ricerca dati in un database

Sono una principiante, anzi principiantissima, che sta cercando di utilizzare Ultradev
4. 
Ho creato un form di ricerca in un database e una pagina dei risultati. Il form
contiene un solo campo: il settore. Mentre la pagina dei risultati dovrebbe restituirmi
le aziende appartenenti al settore digitato nella form.
Come mai non mi funziona niente?! Scusatemi in anticipo se non sono stata molto
chiara e un grazie di cuore a tutti coloro che vorranno aiutarmi.
Form:
<%@LANGUAGE="VBSCRIPT"%>
<%
set ObjConnection = Server.CreateObject("ADODB.Connection") 
ObjConnection.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=e:\
dominio.it
\MDB\nomedb.MDB;
"
set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = ObjConnection
Recordset1.Source = "SELECT * FROM nometabella"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 3
Recordset1.Open()
Recordset1_numRows = 0
%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form name="formsettore" method="post" action="results.asp">
  <p>&nbsp;</p>
  <table width="75%" border="1">
    <tr>
      <td width="36%">settore</td>
      <td width="64%">
        <input type="text" name="formsettore">
      </td>
    </tr>
  </table>
  <p>
    <input type="submit" name="Submit" value="Invia">
  </p>
  <p>&nbsp;</p>
</form>
</body>
</html>
<%
Recordset1.Close()
%>
Pagina risultati:
<%@LANGUAGE="VBSCRIPT"%>
<%
Dim Recordset1__formsettore
Recordset1__formsettore = "%"
if (Request(settore) <> "") then Recordset1__formsettore = Request(settore)
%>
<%
set ObjConnection = Server.CreateObject("ADODB.Connection") 
ObjConnection.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=e:\
dominio.it
\MDB\nomedb.MDB;
"
set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = ObjConnection
Recordset1.Source = "SELECT *  FROM nometabella  WHERE settore LIKE '" + Replace(Recordset1__formsettore,
"'", "''") + "'"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 3
Recordset1.Open()
Recordset1_numRows = 0
%>
<%
Dim Repeat1__numRows
Repeat1__numRows = -1
Dim Repeat1__index
Repeat1__index = 0
Recordset1_numRows = Recordset1_numRows + Repeat1__numRows
%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<% 
While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF)) 
%>
<%=(Recordset1.Fields.Item("Azienda").Value)%> 
<% 
  Repeat1__index=Repeat1__index+1
  Repeat1__numRows=Repeat1__numRows-1
  Recordset1.MoveNext()
Wend
%>
</body>
</html>
<%
Recordset1.Close()
%>
 
--
Enjoy the .NET community! ASPItalia.com
 
http://forum.aspitalia.com/
 
http://www.aspitalia.com/

 Come mai non mi funziona niente?!
Il codice non mi sembra sbagliato, ma sul tuo PC tutto è settato
correttamente per l'esecuzione di asp, vero?
Pws con windows 98-me
IIS5 con 2000 pro o xp.
--
Ciao,
Andrea Z.

 
Mancano gli apici credo.
if (Request("settore") <> "") then Recordset1__formsettore = 
Request("settore")
Ma com'è che UD s'è dimenticato di inserirli? Piuttosto strano.
E' strano anche che abbia messo solo Request (e non Request.form o 
Querystring). Ci hai smanettato tu?

Querystring). Ci hai smanettato tu?
Ahi, mi hai scoperto! E' vero l'ho smanettato io. UD mi dava automaticamente 
if (Request('settore') <> "") then Recordset1__formsettore = 
Request('settore'), ma mi compariva un errore in corrispondenza dell'apice e cosl
ho provato a toglierlo. 
Ho verificato che i 3 modi:
if (Request(settore) <> "") then Recordset1__formsettore = 
Request(settore)
if (Request.form("settore") <> "") then Recordset1__formsettore = 
Request.form("settore")
if (Request.querystring("settore") <> "") then Recordset1__formsettore = 
Request.querystring("settore")
mi danno gli stessi risultati: indipendentemente dal settore indicato nel form,
mi restituiscono tutte le aziende che hanno un campo settore, ma non quelle del
settore digitato nel form.
Grazie in anticipo e ciao.  


Mah, l'ho guardato molto velocemente...
Di solito io uso l'operatore & per concatenare le stringhe in VBScript. E' in
JavaScript che usi il + per sommare sia numeri che stringhe.
Prova a sostituire i + con & qui:
Recordset1.Source = "SELECT *  FROM nometabella  WHERE settore LIKE '" + Replace(Recordset1__formsettore,
"'", "''") + "'"
Non sono sicura, ma prova...
Ciao by Crista
girl power!
Messaggio spedito dal sito Risorse.net
La comunita' virtuale di Web masters e Web designers
http://www.risorse.net