Interrogazione al database.


Facciamo la nostra prima
interrogazione a DB.

Il mio database è realizzato in Access e si chiama Magazzino.mdb,
situata in una directory diversa da quella in cui risiedono anche
le pagine .html. All’interno di questo DB c’è
una tabella che si chiama Warehouse i cui campi principali sono:
Itemnum, Description e Type. Andiamo a vedere come realizzare
la connessione con il database, eseguire una semplice query e
presentarne il risultato a video in una semplice tabella. Il database
è disponibile per il download
qui >>

<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open("Provider = Microsoft.Jet.OLEDB.4.0; Data Source
= C:/inetpub/wwwroot/database/Magazzino.mdb")

Set objRs = Server.CreateObject("ADODB.Recordset")
set objRs = objConn.Execute("SELECT * from Warehouse")
%>

<center><table BORDER=3 WIDTH=200>
<% Do while NOT objRs.EOF %>

<tr>
<td BGCOLOR="red">
<%
response.write "Codice = " & objRs("Itemnum")
& "<br>"
%>
</td>
<td>
<%
response.write "Descrizione = " & objRs("Description")
& "<br>"
%>
</td>
<td>
<%
response.write "Tipo = " & objRs("Type")
& "<br>"
%>
</td>
<%
objRs.Movenext
%>
</tr>

<% Loop %>

</table></center>

<%
objRs.Close
Set objRs = Nothing
objConn.Close
Set objConn = Nothing
%>

Andiamo a vedere riga per riga il codice:

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open("Provider = Microsoft.Jet.OLEDB.4.0; Data Source
= C:/inetpub/wwwroot/database/Magazzino.mdb")

Con queste prime righe abbiamo creato (inizializzato) una connessione
al database (per dettagli vedi le lezioni precedenti)

A questo punto dobbiamo trovare un “recipiente” per
i dati che stiamo estrapolando dal Database. Questo recipiente
è uno dei tanti oggetti della famiglia ADODB e si chiama
recordset (quale nome più adatto? :)

Set objRs = Server.CreateObject("ADODB.Recordset")

Con questa riga ne lancio l’instanza.
A questo punto eseguiamo il metodo execute dell’oggetto
objConn che abbiamo creato in precedenza.

set objRs = objConn.Execute("SELECT * from
Warehouse")

L’argomento del metodo è la query che vogliamo eseguire
sul nostro DB. Il tutto lo buttiamo dentro al oggetto objRs.

Giunti qui abbiamo dentro l’oggetto objRs il risultato
della nostra query cioè i dati che vogliamo visualizzare.
Nell’esempio che presento visualizzerò i dati all’interno
di una tabella molto semplice utilizzando il metodo response.write.

All’interno della definizione della tabella inserisco un
ciclo Do While …… Loop;
Da notare che la condizione del ciclo è EOF (End Of File)
del recordset generato.

<center><table BORDER=3 WIDTH=200>
<% Do while NOT objRs.EOF %>

<tr>
<td BGCOLOR="red">
<%
response.write "Codice = " & objRs("Itemnum")
& "<br>"
%>
</td>
<td>
<%
response.write "Descrizione = " & objRs("Description")
& "<br>"
%>
</td>
<td>
<%
response.write "Tipo = " & objRs("Type")
& "<br>"
%>
</td>
<%
objRs.Movenext
%>
</tr>

<% Loop %>

</table></center>

Mi resta da commentare solo l’ultima riga che è objRs.Movenext
che praticamente non fa altro che, una volta letto un record,
passare al successivo.

E l’ultimo chiude la porta! Con le ultime 4 righe di codice
vado prima a chiudere gli oggetti objRs e objConn e poi a “distruggermi”
cioè ad eliminarne l’istanza.

<%
objRs.Close
Set objRs = Nothing
objConn.Close
Set objConn = Nothing
%>

Piccola nota: Se state installando il DataBase
magazzino sulla vostra macchina, cioè avete accesso fisico
alla macchina che vi fornisce il servizio di IIS 5.0 e la vostra
macchina è una macchina NT like, dovreste stare molto attenti
ai permessi di protezione del file del database, se il database
è stato copiato dall’amministratore del computer, esso
ne diventa proprietario, sicchè nessun altro potrà
accedervi, nemmeno iis5.0, dovete premere il tasto dx del mouse
sul file del database, andare su proprietà, in alto sul
cavaliere protezione ed aggiungere l’utente "everyone"
o se volete essere un po’ più sicuri, aggiungete solo l’utente
iusr_nomemacchina che iis 5.0 ha creato sul vostro
computer, i permessi di accesso devono essere di controllo completo.

Interrogazione al database. ultima modifica: 2002-11-27T00:00:00+00:00 da Enrico

Related Posts

Comments are closed.