>> Torna all'Homepage <<
Contattaci Entra nei forum Cerca nel sito
News della settimana ASP: esempi di pagine dinamiche Trucchi e suggerimenti per il PC Manuali e guide I dossier e gli approfondimenti di AmicoPc Il sito della settimana I racconti di Armando Staffa Chi siamo
     
 

 

Scarica i file
Scarica i file
citati in questa pagina

 


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):

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.

 

Insieme per un mondo migliore

Utenti connessi: 55

Invia questa pagina ad un amico

 

 

 

Chi siamo | Pubblicità | Note sulla privacy | Dicono di noi
Grafica cura di Paolo Omero
- Stefania Migliorucci

La riviera delle azalee