Cuore Batti Cuore - Loris Reinhard - Radio Genius - Alex Damiani e-Thomas.net Network:
 
Il tuo IP: 38.103.63.60
 

Altro
Scarica

 

Sei in: Per i Webmaster - Corso di ASP - Oggetto Connection

In passato la connessione a un database era una procedura piuttosto complessa in quanto era necessario conoscere una API (Application Programming Interface) a basso livello per ogni database che si voleva utilizzare. Con la creazione di ODBC (Open Database Connectivity) si è cercato di fornire agli sviluppatori una API universale per l'accesso ai dati; la maggior parte dei database si è adeguata allo standard ma ODBC necessitava ancora di chiamate a basso livello per la gestione dei dati. Inizialmente la soluzione proposta da Microsoft fu DAO (Data Access Objects) seguita da RDO (Remote Data Objects) e infine da ADO (ActiveX Data Objects). Per ovviare al fatto che anche DAO e RDO richiedevano che i dati fossero in formato SQL (Structured Query Language), Microsoft ha introdotto OLEDB, un oggetto di accesso ai dati basato su COM che consente l'accesso a tutti i tipi di dati. Si può dire che OLEDB sostituisce ODBC in quanto include un driver ODBC che assicura la compatibilità con tutte le origini dati ODBC. ADO permette ad una pagina ASP una facile connessione ai database e tramite i suoi cinque principali oggetti incorporati (Connection, Recordset, Command, Record e Stream) consente la manipolazione dei dati.

L'oggetto Connection
Prima di poter utilizzare un database, è necessario effettuare una connessione. L'oggetto Connection contiene le informazioni relative all'archivio dati da utilizzare. L'istruzione per aprire una connessione è molto semplice:

Dim objCon
Set objCon = Server.CreateObject("ADODB.Connection")

A questo punto serve una stringa di connessione che identifichi che tipo di archivio dati si intende utilizzare. Nel caso di un database Access la stringa si presenterebbe come segue:

objCon.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:\percorso\nomefile.mdb"

In questo caso abbiamo utilizzato un cosiddetto Provider OLEDB specifico per il collegamento con Access. In alternativa la stringa potrebbe fare riferimento ad un driver ODBC e allora la stringa sarebbe:

objCon.ConnectionString = "Driver = {Microsoft Access Driver (*.mdb)}; DBQ = C:\percorso\nomefile.mdb"

Le stringhe variano a seconda dell'archivio dati cui ci si vuole connettere. Una volta fatto questo, si apre definitivamente la connessione con:

objCon.Open

In alternativa si può anche utilizzare una forma abbreviata:

Dim objCon
Set objCon = Server.CreateObject("ADODB.Connection")
objCon.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\percorso\nomefile.mdb"

Ipotizziamo di avere molte pagine che necessitino di connettersi allo stesso archivio dati. Come si potrebbe fare per evitare di scrivere le stesse istruzioni in ogni pagina? In questo caso ci viene incontro l'SSI (server-side include) per l'inclusione di file lato server. Significa che si possono creare uno o più file esterni che possono essere inclusi in tutte le pagine che ne hanno bisogno e che possono contenere delle istruzioni che saranno elaborate dal server come se fossero all'interno della pagina stessa. Vediamo un esempio di file da includere:

Dim path, objCon
path = "percorso\nomefile.mdb"
Set objCon = Server.CreateObject("ADODB.Connection")
objCon.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath(path)

Solitamente sui libri di testo si consiglia di chiamare i file da includere con una estensione .inc, io consiglio invece di continuare a chiamare questi file con una estensione .asp. Nel caso in cui un utente scoprisse l'indirizzo diretto ad un vostro file .inc, potrebbe aprirlo come un normale file di testo; lasciandolo come .asp questo non accadrebbe. Bene, ipotizziamo di salvare il nostro file come inc_opendb.asp e vediamo qual è l'istruzione per l'inclusione:

<!--# include file="percorso/inc_opendb.asp"-->

Fino ad ora abbiamo parlato di connessioni cosiddette DSN-less, dove per DSN si intende Data Source Name. Le connessioni DSN solitamente si possono utilizzare quando si ha libero accesso alle impostazioni del pannello di controllo del server che ospita il nostro sito Internet. Infatti, per impostare una di queste connessioni su Windows 2000, bisognerebbe andare in Pannello di Controllo --> Strumenti di amministrazione --> Origine dati (ODBC) --> DSN di Sistema e impostare un nome per la connessione, il tipo di driver da utilizzare e il percorso più il nome dell'archivio dati al quale si fa riferimento. Una volta fatto questo, l'istruzione da mettere all'interno delle pagine sarebbe la seguente:

Dim objCon
Set objCon = Server.CreateObject("ADODB.Connection")
objCon.Open "nomeDSN"

dove nomeDSN è il nome impostato nel Pannello di Controllo.

Una volta che la connessione all'archivio dati non è più necessaria, si deve chiudere la connessione e ripulire la memoria del server come segue:

objCon.Close
Set objCon = Nothing

Esiste una collection nell'oggetto Connection chiamata Properties che contiene un'istanza dell'oggetto Property per ogni proprietà supportata dalla connessione. Per vedere quindi le proprietà della connessione utilizzata, si potrebbe procedere come segue:

<%
Dim path, objCon, objProperty
path = "percorso\nomefile.mdb"
Set objCon = Server.CreateObject("ADODB.Connection")
objCon.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath(path)
For Each objProperty In objCon.Properties
    Response.Write objProperty.Name & ": " & objProperty.Value & "<br>"
Next
objCon.Close
Set objCon = Nothing
%>

Oltre ad osservare tutte le proprietà, non si può fare molto con l'oggetto Connection. Per poter usare i dati contenuti in un database, occorre utilizzare un altro oggetto di ADO, l'oggetto Recordset.

Contattaci. Stampa questa pagina. Contattaci via SMS. e-Thomas.net © 2009 Tutti i diritti riservati
 

F.A.Q. - Chi Siamo - Sitemap - Aspetti legali - Privacy - Le nostre fonti - RSS

Utenti connessi: 3 - Visite: 436.587 dal 10/02/2004 - Visite medie giornaliere: 243