Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    [ASP] Richiamare dati da un db

    Ciao a tutti!
    Desidereri effettuare una query di lettura dati con asp.
    Per ora che sto facendo delle prove il mio db (access) è composto da una sola tabella (Tabella1) con il campo Nome.
    L'idea è di avere un menu a tendina contenente il nome dei campi presenti nella tabella (per ora è uno solo poi ne aggiungerò altri).
    Poi un campo editabile dove poter inserire il valore da ricercare con la query.
    Seguendo un pò alcuni esempi presenti in rete e su quesot sito ho fatto una pagina "chiedimi.asp" contenente il menu' a tendina e una editbox (dichiarata così Response.Write "<input type='text' name='nome'>"). Poi un'altra pagina "rispondimi.asp" che lancia la query leggendo i campi dal menù a tendina e dalla editbox. I problemi che ho sono i seguenti

    • non riesco a "popolare" il menù a tendina con il nome dei campi della tabella
    • nella pagina "rispondimi.asp" non riesco a richiamare la query; facendo nel seguente modo
      codice:
      rsQuery.Source = "SELECT * FROM Tabella1 WHERE Nome = " & Request.Form("nome")
      rsQuery.Open
      visualizzo questo errore
      codice:
      Script error detected at line 28.
      Source line: rsAnagrafica.Open()
      Description: [Microsoft][Driver ODBC Microsoft Access] Parametri insufficienti. Previsto 1.
      Se invece la lancio direttamente con il valore visualizzo il risultato correttamente
      codice:
      rsQuery.Source = "SELECT * FROM Tabella1 WHERE Nome = 'Paperino' "
      rsQuery.Open

    Mi dareste qualche dritta ?

  2. #2
    La query scritta così funziona:
    codice:
    rsQuery.Source = "SELECT * FROM Tabella1 WHERE Nome = '" & Request.Form("nome") & "'"
    Rimane il dubbio sul menù a tendina..
    :master:

  3. #3
    Utente di HTML.it L'avatar di Cream
    Registrato dal
    Feb 2002
    Messaggi
    534
    <form action="index.asp" method="get">
    <SELECT NAME="none">
    <option value="">Categoria</option>
    <% set rs = objConn.Execute("Select * from Tabella1 order by nome asc")
    while not rscategorie_ricerca.EOF
    nome = rs("nome")%>
    <option value="<%=nome%>"><%=rs("nome")%></option>
    <%rs.MoveNext
    wend
    rs.Close
    Set rs = Nothing %>
    </SELECT>
    <INPUT TYPE="submit">
    </form>

    <% nome=request("nome")
    if nome <> "" then

    set rs = objConn.Execute("Select * from Tabella1 Where nome = "&nome&"")
    while not rscategorie_ricerca.EOF
    nome = rs("nome")%>
    <%=rs("nome")%>

    cambia questo vuoi
    <%=rs("altri campi che vuoi")%>

    <%rs.MoveNext
    wend
    rs.Close
    Set rs = Nothing

    else
    %>Scegli un campo dalla select<%
    end if %>

    chiami tutta la pagina index.asp

  4. #4
    Ti ringrazio ma non ho compreso totalmente la porzione di codice che hai postato...ho fatto un pò di prove e con il seguente codice

    codice:
    <%
    'Connessione al db
    Dim MM_connAnagrafica_STRING
    MM_connAnagrafica_STRING = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/db1.mdb") 
    %>
    
    <html>
    	<head>
    		<title>Chiedimi</title>
    	</head>
    	<body>
    	
    		<form action="rispondimi.asp" method="get" id=form1 name=form1>
    			<select name="select_campo">
    				<option value="">Categoria</option>
    				<%
    				Dim rs, rscategorie_ricerca
    				Set rs = Server.CreateObject("ADODB.Recordset")
    				Set rscategorie_ricerca = Server.CreateObject("ADODB.Recordset")
    				rs.Source = "Select * from Tabella1 order by nome asc"
    				while not (rs.EOF)
    					nome = rs("nome")
    				%>
    				<option value="<%=nome%>"><%=rs("nome")%></option>
    				<%
    				rs.MoveNext
    				wend
    				rs.Close
    				Set rs = Nothing
    				%>
    			</select>
    		</form>
    		<%
    		Response.Write "<form action='rispondimi.asp' method='post'>
    "
    		Response.Write "<input type='text' name='nome'>
    "
    		Response.Write "<input type='submit' value='dimmelo'>" 
    		Response.Write "</form>"
    		%>
    	</body>
    </html>
    visualizzo un errore
    codice:
    Script error detected at line 27.
    Source line: while not (rs.EOF)
    Description: Operation is not allowed when the object is closed.
    Ma come è possibile, il recordset è aperto...

  5. #5
    prova a mettere la chiusura del recordset in fondo alla pagina...

    o no?
    http://www.ecogiochi.it - il primo blogames del pianeta
    http://www.grogonet.com - Grog on network

  6. #6
    Ho sistemato (ma ancora ci sarebbe un pò di lavoro da fare) il tuo codice:

    codice:
    <%
    set conn = server.createobject("ADODB.Connection")
    str_conn = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = "&_
    	server.mappath("/db1.mdb")
    conn.open str_conn
    %>
    
    <html>
    	<head>
    		<title>Chiedimi</title>
    	</head>
    	<body>
    	
    		<form action="rispondimi.asp" method="get" id=form1 name=form1>
    			<select name="select_campo">
    				<option value="">Categoria</option>
    
    				<%
    				sql = "Select * from Tabella1 order by nome asc"
    				Set rs = conn.execute(sql)
    
    				do until rs.eof
    				%>
    
    				<option value="<%=rs("nome")%>"><%=rs("nome")%></option>
    
    				<%
    				rs.MoveNext
    				loop
    
    				rs.Close
    				Set rs = Nothing
    				conn.close
    				set conn = NOTHING
    				%>
    			</select>
    		</form>
    
    		<%
    		Response.Write "<form action='rispondimi.asp' method='post'>
    "
    		Response.Write "<input type='text' name='nome'>
    "
    		Response.Write "<input type='submit' value='dimmelo'>" 
    		Response.Write "</form>"
    		%>
    	</body>
    </html>

  7. #7
    Originariamente inviato da supergeniux
    Ho sistemato (ma ancora ci sarebbe un pò di lavoro da fare) il tuo codice:
    Grazie ma mi sa che mi sono spiegato male...
    Nel menu' a tendina vorrei vedere il NOME dei campi presenti nella tabella...
    Quindi se nella mia tabella ho i campi
    NOME, COGNOME, INDIRIZZO
    e diversi record, nel menù a tendina vorrei visualizzare NOME, COGNOME e INDIRIZZO...forse faccio prima a metterli fissi...
    Grazie mille!

  8. #8
    Altro dubbio...
    se apro una connessione così
    codice:
    Dim MM_conn_STRING
    MM_conn_STRING = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/db1.mdb")
    Come la chiudo ?
    ( ora mi rimane il file temporaneo di access con estensione ldb )

  9. #9
    Cambia questo:

    codice:
    <option value="<%=rs("nome")%>"><%=rs("nome")%></option>
    con questo:

    codice:
    <option value="<%=rs("nome")%>"><%=rs("nome")%> <%=rs("cognome")%> <%=rs("indirizzo")%></option>
    Il problema è sul valore che vuoi passare.

    Comunque fai un pò di prove che se hai altri problemi ti aiutiamo.

  10. #10
    Hmm non mi sono spiegato ancora
    Nel menù a tendina vorrei visualizzare il nome dei campi della tabella, non il valore.
    Per farmi capire meglio se ho una tabella così

    nel menù a tendina dovrei visualizzare:
    Nome
    Cognome
    Citta

    Alla fine mettendoli fissi non ho problemi ma per curiosità mi piacerebbe capire come poter fare per prelevarli direttamente dal database...

    Poi per la connessione al db ?
    Altro dubbio...
    se apro una connessione così
    Dim MM_conn_STRING
    MM_conn_STRING = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/db1.mdb")

    Come la chiudo ?
    ( ora mi rimane il file temporaneo di access con estensione ldb )

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 © 2025 vBulletin Solutions, Inc. All rights reserved.