|

VISUALIZZARE I RECORD PRESENTI IN UN DATABASE

Vediamo
innanzitutto come creare una connessione ad un database
e come visualizzare, in un’unica pagina ASP, il suo
contenuto: facciamo qui riferimento alla sezione ‘Link’
del sito AmicoPc, visibile all’indirizzo http://www.amicopc.com/link/index.asp
Per
prima cosa creiamo una nuova cartella chiamandola, per
esempio, ‘prova’. In questa cartella creiamo un'ulteriore
sottocartella che chiamiamo ‘database’.
I database li raduniamo in un’unica cartella in quanto,
spesso, i provider abilitano i permessi di scrittura
su una sola cartella. In questo modo possiamo chiedere
che tali permessi siano abilitati sulla cartella ‘database’.
Se
avete installato il PWS il percorso della cartella ‘prova’
dovrà essere C:\Inetpub\wwwroot\prova.
Occorre
innanzitutto creare un database di MsAccess 97/2000
e salvarlo con il nome ‘link.mdb’ nella cartella ‘database’.
Scegliere
poi ‘Crea una tabella in visualizzazione Struttura’:

nella
finestra che appare posizionarsi nella prima riga e
scrivere ‘id’ (senza apici) e, nella seconda colonna,
selezionare dal menu a tendina, la voce ‘contatore’.
Nella
seconda riga - prima colonna, invece scriviamo ‘link’
e nella seconda colonna scegliamo, sempre dal menu a
tendina, la voce ‘testo’.
A
questo punto ci spostiamo in basso a questa finestra

nel
campo 'dimensione del campo' sostituiamo 50 con il valore
255 (ovvero il massimo numero di caratteri consentito)
Torniamo
poi nella terza riga - prima colonna e scriviamo ‘descrizione’,
mentre nella seconda colonna scegliamo ‘memo’.
A
questo punto salviamo e scegliamo ‘link’ come nome della
tabella, confermando anche la creazione di una 'chiave
primaria'
Dopo
aver chiuso questa finestra creiamo una maschera che
ci consenta di compilare agevolmente i record di questi
campi.
Dal
menu a sinistra scegliamo la voce ‘Maschera’ (nel caso
di Access 97 invece scegliamo la scheda Maschera fra
quelle proposte).
A
questo punto facciamo un doppio clic sulla voce ‘Autocomposizione’
e nella finestra che appare clicchiamo sul pulsante
con la doppia freccia a sinistra

e
sul pulsante ‘Fine’ assegnando il nome voluto.
Clicchiamo
ora due volte sulla maschera appena creata e cominciamo
ad inserire i dati: nel primo campo inseriamo l’indirizzo
della pagina nel formato http://www.dominio.ext/nome_pagina.htm
mentre nel secondo campo inseriamo la descrizione del
sito o della pagina stessa.
Dopo
aver compilato tutti i campi che ci interessano chiudere
il database e aprire il Blocco Note di Windows.
Creiamo
quindi un file che chiamiamo
LINK.ASP
A
questo punto cominciamo a scrivere la pagina ASP che
consentirà di visualizzare tali dati. Ricordiamoci che
il codice ASP è racchiuso dai tag <% e %>; tutto
il resto è normale codice html.
Per
prima cosa creiamo una connessione con il nostro database.
La connessione può essere realizzata in tre modi.: il
primo comporta l’utilizzo di DSN di sistema.
E’
il metodo probabilmente migliore in quanto si ottengono
prestazioni migliori; ugualmente però bisogna richiedere
al provider l’attivazione di tali DSN: oltre ai tempi
di attesa più o meno lunghi, talvolta l'attivazione
non è nemmeno gratuita.
Il
secondo metodo richiede invece che si conosca il percorso
esatto del file .mdb memorizzato sul server (per esempio
c:\intepub\wwwroot\user\nomeutente\...): esiste il modo
di visualizzare tale percorso mediante uno script in
asp, ma ugualmente preferisco utilizzare il terzo metodo,
ovvero l’oggetto ‘mappath’.
In
questo modo è sufficiente specificare solo la posizione
relativa del file (nel nostro caso si tratta di ‘database/link.mdb’)
e non viene richiesto altro.
Utilizzeremo
pertanto questo metodo.
Prepariamo
la connessione
|
<%
Dim
Conn
Set
Conn = Server.CreateObject("ADODB.Connection")
|
specificando
il nome e la posizione del nostro database ‘link.mdb’
posizionato appunto nella cartella ‘database’
| conn.Open
"driver={Microsoft Access Driver (*.mdb)};dbq="
& server.mappath("database/link.mdb")
|
Definiamo
l’oggetto RecordSet (per gli amici ‘RS’)
|
Dim
rs
Set
rs = Server.CreateObject("ADODB.Recordset")
|
e
definiamo il criterio di ricerca all’interno dei database
| rs.Open
"select * from link order by id DESC",
conn |
dove
chiediamo di selezionare (SELECT) tutti i valori (*)
dalla tabella link (FROM LINK) e di ordinarli per ID
(ovvero il campo contatore) decrescente (ORDER BY ID
DESC), in modo che le aggiunte più recenti (ID maggiore)
siano visualizzate ai primi posti.
In
questo modo vengono selezionati tutti i dati presenti
nel nostro database, finchè non giungiamo alla fine
del file stesso (Do
while NOT RS.EOF => End Of File):
A
questo punto comincia la visualizzazione di quanto ottenuto.
Definiamo
innanzitutto la variabile ‘descrizione’
|
%>
<p>
<%
Dim
descrizione
|
a
cui assegniamo il valore che abbiamo appena caricato
dal database e che, al momento, è memorizzato nel recordset
RS
| descrizione=rs("descrizione")
|
Ora
chiediamo che tale valore sia mostrato a schermo mediante
il comando ‘response.write’
|
response.write(descrizione)
%><br>
|
Mostriamo
ora il link cui fa riferimento tale descrizione: anche
qui creiamo la variabile ‘link’ e vi associamo il valore
preso dal database e che al momento è memorizzato nel
RecordSet (RS)
|
<%
Dim
link
link=rs("link")
%>
|
In
questo caso dobbiamo però ricordare che si tratta di
un link e nel codice html il link è definito come segue:
<a
href=“http://www.dominio.ext” target=“_blank”> testo
linkato </a>
dove
“_blank” definisce l’apertura del link in una nuova
finestra. Nel
nostro caso la parte http://www.dominio.ext dovrà variare
di volta in volta a seconda del record visualizzato.
Pertanto
utilizziamo la variabile ‘link’ appena creata. In questo
modo avremo
| <a
href="<% response.write(link) %>"
target="_blank"><% response.write(link)
%> </a> |
dove
il primo <% response.write(link) %> serve a compilare
il collegamento, mentre il secondo serve a visualizzare
il collegamento a schermo.
Fatto
questo mi sposto al record successivo del mio database
e ripeto l’operazione,
Una
volta che sono giunto alla fine del mio database (ricordate
Do while NOT RS.EOF?) posso chiudere la connessione
in modo da liberare risorse sul server stesso.
|
RS.Close
Set
RS = Nothing
conn.Close
Set
conn=Nothing
%>
|
A
questo punto salvare con estensione ‘.ASP’ e verificare
il lavoro svolto.
N.B.:
Tutto quello che è compreso fra ‘Do while NOT RS.EOF’
e ‘RS.MoveNext/Loop’ viene ripetuto per ogni record:
quindi, se volete inserire, per esempio, un’immagine
fra un record e un altro, è sufficiente che inseriate
il relativo codice all’interno di tali comandi.
|