Corsi on-line
Chiudi
Newsletter:
  • Seguici su Facebook
  • Seguici su Twitter
  • Seguici su Google+
  • Seguici via RSS
  • Seguici col tuo Smartphone

Interazione con i database

Una delle maggiori potenzialità offerte da ASP e dai linguaggi di scripting lato server in generale (ASP.NET, PHP, JSP, CGI, ecc...) è quella di interagire con un database, ovvero con una fonte di dati strutturata che rispetti gli standard del linguaggio SQL.

I database con i quali ASP può interagire sono Ms Access ed Ms SQL Server, ovvero database di casa Microsoft. Può interagire anche con MySQL, col quale però non c'è un rapporto ottimale. Può interagire con Oracle, Basis, DB2 e tutti gli altri database che rispettino gli standard di comunicazione dettato dal driver ODBC (Open Database Connectivity).

(L'articolo continua più sotto...)

Il database che utilizzeremo per i nostri esempi è Access; è richiesta quindi una minima conoscenza in merito alla creazione di un nuovo file di database e di una semplice tabella.

Iniziate a creare sul vostro server Web, nella cartella degli esempi della guida, la cartella database all'interno della quale inseriremo un file di database Access di prova e due file ASP, uno per la lettura dei dati ed uno per la scrittura di dati.

ASP utilizza il componente ADO (ActiveX Data Object) per l'interfaccia effettiva con un database che rispetti gli standard ODBC. ADO mette a disposizione tre oggetti principali: Connection, Recordset e Command. Il terzo è un oggetto specialistico non adatto al target di conoscenza e competenza del lettore. Spiegheremo i primi due.

Connection permette di stabilire una connessione col database e di eseguire query SQL. Recordset permette in maniera più appropriata di eseguire query. Per query (che letteralmente significa interrogazione) si intende una qualsiasi operazione effettuabile su un database: in primis quindi la lettura dei dati, ma anche inserimenti, modifiche e cancellazioni.

Creiamo nella nostra cartella database il file di database Access database.mdb che dovrà contenere la tabella persone composta dai campi id (di tipo Contatore), nome e cognome (entrambi di tipo Testo). Salviamo la tabella senza specificare nessuna chiave primaria quando richiesto e andiamo avanti.

Si crei nella cartella di prova il file connessione.asp il cui codice è rappresentato semplicemente la variabile contenente la stringa di connessione al database:

<%
Dim str_cn
str_cn = ""
str_cn = str_cn & "driver={Microsoft Access Driver (*.mdb)};"
str_cn = str_cn & "dbq=" & Server.MapPath("database.mdb")
%>
Si crei poi il file leggi.asp (che includerà con le SSI il file connessione.asp) e si inserisca il seguente codice corredato da opportuni commenti:
<%@LANGUAGE = VBScript%>
<!--#include file="connessione.asp"-->
<%
Dim cn, rs ' Variabili per la connessione e per il Recordset

' Creo un'istanza per la connessione ed una per il Recordset
Set cn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")

cn.Open str_cn ' Apro la connessione al database

Dim SQL ' Creo la query SQL
SQL = "SELECT * FROM persone"

' Apro il Recordset
rs.Open SQL, cn
%>
<html>
<head>
<title>Lettura dei dati da un database</title>
</head>
<body>

<%
' Verifico che la tabella contenga dati

' Se non ne contiene lancio un messaggio di avviso
If rs.EOF = True Then
%>

<p>Nessun dato trovato</p>

<%
' Se invece ne contiene visualizzo i dati in funzione
' della query SQL specificata
Else

While rs.EOF = False
%>

<p>
<b>Nome:</b> <%=rs("nome")%>
<br>
<b>Cognome:</b> <%=rs("cognome")%>
</p>

<%
rs.MoveNext
Wend

End If
%>

</body>
</html>
<%
' Chiudo il Recordset
rs.Close
Set rs = Nothing

' Chiudo la connessione
cn.Close
Set cn = Nothing
%>
Il codice commentato dovrebbe risultare abbastanza chiaro. In merito al preciso funzionamento degli oggetti messi a disposizione da ADO rimando il lettore ad una guida avanzata o corredata del supporto di un Docente.

Facciamo adesso un esempio di scrittura dei dati senza l'utilizzo di un modulo, ma semplicemente eseguendo un comando INSERT dell'SQL. Si crei il file scrivi.asp il cui codice commentato è esposto di seguito:

<%@LANGUAGE = VBScript%>
<!--#include file="connessione.asp"-->
<%
Dim cn ' Variabile per la connessione

' Creo un'istanza per la connessione
Set cn = Server.CreateObject("ADODB.Connection")

cn.Open str_cn ' Apro la connessione al database

Dim SQL ' Creo la INSERT in SQL
SQL = ""
SQL = SQL & "INSERT INTO persone "
SQL = SQL & "(nome, cognome) "
SQL = SQL & "VALUES "
SQL = SQL & "('Luca', 'Ruggiero')"

cn.Execute(SQL)

' Chiudo la connessione
cn.Close
Set cn = Nothing

' Rimando alla pagina di lettura dei dati
Response.Redirect "leggi.asp"
%>

Corsi
Corso ASPCorso ASP
Corso completo per la creazione di siti Web dinamici. A partire da 39 €.
Corso ASP da ZeroCorso ASP da Zero
Imparare Microsoft ASP e VBScript da zero. A partire da 29 €.
Corso ASP e AccessCorso ASP e Access
Gestione di un database MS Access con ASP. A partire da 29 €.
Sommario
Annunci

Mr.Webmaster

Pubblicità
Chi Siamo
Contattaci
Collabora
Note Legali
© 2003 - 2012 Mr.Webmaster - Il portale dei Webmaster Italiani - Tutti i diritti riservati | Powered by IKIweb Internet Media S.r.l. - PIVA 02848390122