Database access e ricerca dati in pagina html

lunedì 02 novembre 2009 - 15.11

zdelete Profilo | Newbie

Salve a tutti, vi scrivo perchè sono giorni che provo a collegare una pagina html ad un database in access ma non ci riesco proprio! Ho cercato in rete ed i vari esempi mi danno sempre qualche errore quindi nada! Ho cercato anche su questo forum ma, a meno di abbagli, non ho trovato niente e quindi vi "espongo il caso"...
Dovrei creare una pagina in html con un campo di ricerca (un form se non sbaglio terminologia) che vada a prendere i dati in un database in access. La pagina non dovrà essere pubblicata in rete ma dovrà servire in locale. Idem per il database.
E giusto per non andare incontro ad orrori da parte mia specifico altro:
a) il database si chiama forum.mdb
b) la tabella da cui prelevare i dati si chiama posts
c) le colonne di dati interessati sono PostUser, PostTitle e PostMessage
Il risultato da ottenere sarebbe che dopo aver digitato il testo da cercare (in questo caso collegato a PostUser) mi venissero elencati i PostTitle e PostMessage relativi.
Spero di essere stato abbastanza chiaro. Grazie infinite a tutti.

alx_81 Profilo | Guru

>Salve a tutti,
ciao!

>Dovrei creare una pagina in html con un campo di ricerca (un
>form se non sbaglio terminologia) che vada a prendere i dati
>in un database in access. La pagina non dovrà essere pubblicata
>in rete ma dovrà servire in locale. Idem per il database.
Allora, una pagina html, in se, non può connettersi ad un database, a meno che non usi dello scripting lato client (vedi javascript) oppure che non scrivi un flash che si interfaccia al db. Ma la pagina in sè non fa nulla e non può fare nulla. Piuttosto ti serve una tecnologia come asp.net, asp, php, che ti consentono di usare scripting lato server per interrogare il database.

>Il risultato da ottenere sarebbe che dopo aver digitato il testo
>da cercare (in questo caso collegato a PostUser) mi venissero
>elencati i PostTitle e PostMessage relativi.
>Spero di essere stato abbastanza chiaro.
Sembra che ti serva un forum . Che ne dici di usare prodotti free tipo forumfree.net?

>Grazie infinite a tutti.
di nulla!

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

zdelete Profilo | Newbie

Ciao, grazie per l'attenzione ma quello che ho esposto è giusto un "esempio" per capire come funziona la connessione al database con il form di ricerca. Aggiungo, inoltre, che l'interrogazione sarebbe in sola lettura del database. Se poi servono javascript o altro per me è indifferente! Nel senso proprio che quello che mi interessa è capire come fare questo "agganciamento" di dati. Grazie ancora...
PS: se poi qualcuno potesse "suggerirmi" un libro o altro materiale da studiare mi farebbe un enorme piacere

alx_81 Profilo | Guru

>Ciao, grazie per l'attenzione ma quello che ho esposto è giusto
>un "esempio" per capire come funziona la connessione al database
>con il form di ricerca. Aggiungo, inoltre, che l'interrogazione
>sarebbe in sola lettura del database. Se poi servono javascript
>o altro per me è indifferente! Nel senso proprio che quello che
>mi interessa è capire come fare questo "agganciamento" di dati.
>Grazie ancora...
ok, allora, ti consiglio di scaricarti Visual Studio 2008 web Developer Express (http://www.microsoft.com/express/vwd/). E Sql server 2008 Express, se vuoi evitare di usare Access (http://www.microsoft.com/express/sql/download/). Qui hai un video per partire:
http://msdn.microsoft.com/it-it/beginner/bb964635.aspx

Per connetterti al database, devi conoscere ADO.Net, e qui ci sono video utili:
http://idealprogrammer.com/languages/visual-basic-vbnet/adonet-step-by-step-16-free-one-hour-videos/

Spero possa esserti di aiuto,
se hai bisogno, chiedi pure.
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

zdelete Profilo | Newbie

Grazie per i link
nel frattempo ho fatto ancora prove e quasi quasi ci siamo! Solo che forse il post "rischia" di essere passato al "reparto asp"... si regolerà il mod...
Dunque, ho creato una pagina in html che richiama una in asp e le ho messe tutt'e due in locale su inetpub (e per semplicità ho messo anche il file in access nella stessa directory) solo che avviando la ricerca mi dà il seguente errore

Tipo di errore:
Server.MapPath(), ASP 0173 (0x80004005)
Il parametro Path del metodo MapPath contiene un carattere non valido.
/search.asp, line 12

e la linea in questione è questa

Conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(DbPath)

per completezza vi riporto tutta la pagina in asp che è piccolina

<%
Dim Cerca
Cerca = Replace(Request.Form("search"), "'", "")
if Cerca = "" then
Response.write "Errore. Non hai inserito nessun termine da cercare"
Response.end
end if

Dim DbPath, Conn
DbPath="http://localhost/forum.mdb"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(DbPath)

Dim strSQL, Rs
strSQL = "Select * from posts where PostUser like '%" & Cerca & "%' or SEARCH_WORDS like '%" & Cerca & "%'"
Set Rs = Server.CreateObject("ADODB.Recordset")
Rs.Open strSQL, Conn, 3, 3

if Rs.EOF then
Response.write "Nessun risultato trovato!"
else
Do while NOT Rs.EOF
Response.write "<a href=" & Rs("PostSection") & ">" & Rs("PostMessage") & "</a><br>" & Rs("PostUser") & "<br><br>"
Rs.MoveNext
Loop
End If

Rs.close
Set Rs = Nothing
Conn.close
Set Conn = Nothing
%>

Inutile dire che non è farina del mio sacco io ho solo personalizzato i percorsi, i campi di ricerca ed i permessi. Spero non abbia fatto orrori troppo grossi. Grazie infinite ancora

Aggiornamento!! Ho cambiato il percorso del database mettendo solo /forum.mdb (credo sia esatto così, se sbaglio correggetemi!) ed ora l'errore è questo

Microsoft JET Database Engine (0x80040E10)
Nessun valore specificato per alcuni parametri necessari.
/search.asp, line 17

Non si finisce mai di ... sbagliare!

Ulteriore aggiornamento! 05/11

Ho stampato la query ed il risultato è questo:

Select * from posts where PostUser like '%esempio%' or SEARCH_WORDS like '%esempio%'

un aiutino a questo puno sarebbe risolutivo!! grazie ancora

Ultimo aggiornamento delle 21:10 del 05/11 e chiudo perchè ho risolto!

Giusto per essere d'aiuto anche a chi dovesse avere lo stesso problema riposto il codice al completo con tutte le modifiche da me fatte durante le prove:

<%
Dim Cerca
Cerca = Replace(Request.Form("search"), "'", "")
if Cerca = "" then
Response.write "Errore. Non hai inserito nessun termine da cercare"
Response.end
end if

Dim DbPath, Conn
DbPath="/forum.mdb"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(DbPath)

Dim strSQL, Rs
strSQL = "Select * from posts where PostUser like '%" & Cerca & "%'"
Set Rs = Server.CreateObject("ADODB.Recordset")
Rs.Open strSQL, Conn, 3, 3

if Rs.EOF then
Response.write "Nessun risultato trovato!"
else
Do while NOT Rs.EOF
Response.write Rs("PostTitle") & " > " & Rs("PostMessage") & "<br>" & Rs("PostUser") & "<br><br>"
Rs.MoveNext
Loop
End If

Rs.close
Set Rs = Nothing
Conn.close
Set Conn = Nothing
%>

Qualora doveste avere ancora problemi controllate i permessi di tutti i file e di tutte le cartelle. Per dubbi e/o problemi non esitate a chiedere!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5