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):
| Do while NOT RS.EOF |
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,
| </p> <% RS.MoveNext Loop |
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.
