Buono sconto 4% su Toner e Cartucce agli utenti AZpoint. SU Iomiricarico.it!!
Connessione ai Database
In questa parte della guida, arrivata già alla lezione 5, parleremo dei DB e delle loro interazioni con
le Active Server Pages.
La potenza delle Active Server Pages diventa evidente quando leghiamo i
nostri siti web ai Database. ASP per fare ciò utilizza una libreria di
oggetti chiamata ActiveX Data Object (ADO). ADO può essere usato per collegarsi
ai DB ODBC (Open DataBase Connectivity) compatibili, cioè ad esempio MS SQL
Server, MS Access, Oracle, Excel, etc. Ecco la lista di passi da seguire per
collegarsi con un DB:
- Creare un oggetto per collegarsi al DB
- Fornire a quell’oggetto le informazioni riguardanti il percorso e il tipo
del nostro DB
- Comandare quell’oggetto ad aprire una connessione col DB
Per
eseguire il primo passo usiamo uno degli oggetti forniti da ADO, l’Oggetto
Connection, che viene creato tramite il metodo CreateObject dell’oggetto Server di ASP e
usa una variabile per il riferimento all’oggetto. Inseriamo quindi le
seguenti righe:
<% Dim DBConn Set DBConn = Server.CreateObject("ADODB.Connection")
Bisogna ora dare all’oggetto le informazioni per connettersi al DB. Esistono
due modi per fare ciò:
- Attraverso l’uso di un System DSN (Data Source Name)
- Atraverso una connessione DSN-Less
Il System DSN è un file
contenente informazioni su un particolare DB, come la collocazione fisica del
DB, il tipo del DB (SQL, Access, ecc.) e altre informazioni pertinenti. Un
System DSN si crea tramite l’ODBC di Windows. Queste origini dati sono locali
rispetto a un computer ma non sono dedicate a specifici utenti; qualsiasi utente
con privilegi appropriati può infatti accedere a un DSN di sistema. Una volta
creato il System DSN, bisogna che l’oggetto connessione (DBConn) sappia qual’è
il DB a cui si deve connettere. Per fare ciò aggiungiamo la seguente
linea:
DBConn.ConnectionString = "DSN = SystemDSN_nome"
La connessione atraverso DSN-Less complica un pochino la stringa di
collegamento, perché si devono fornire tutte le informazioni importanti
all'interno della stringa di connessione, poiché non c’è un DSN che contiene
quelle informazioni. Le connessioni DSN-Less sono usate quando ho tanti DB
da collegare, e quindi se usassi i System DSN ne avrei troppi. Un esempio di
stringa di connessione DSN-less è:
strConn= "driver={Microsoft Access Driver (*.mdb)}; dbq=" &
Server.MapPath ("/cartella/database.mdb"))
Come si nota bisogna fornire nel DBQ il percorso fisico del DB.
Fortunatamente però ci viene in aiuto un altro metodo dell'Oggetto Server, il
MapPath, che va a cercare il percorso fisico che gli indichiamo. Bisogna
anche definire il driver da usare per la connessione (nel nostro esempio MS
Access). Inoltre se voglio proteggere il Db con una password acnhe questa deve
essere contenuta all'interno della stringa di connessione. Ora dobbiamo
soltanto dire all’oggetto connessione di aprire la connessione col DB.
Questo si fa invocando il seguente metodo:
DBConn.Open strConn
Ora siamo collegati con il Database e possiamo uare il linguaggio SQL per
costruire Query
per interagire col DB. E' spesso utile anche utlizzare i Recordset. Quando
una connessione non serve più va chiusa nel seguente modo:
DBConn.Close Set DBConn=Nothing
Cosa molto importante è chiudere la connessione col DB appena essa non ci è
più utile, senza aspettare la fine della pagina, perchè in questo modo si
migliorano le prestazioni del Server.
Per la connessione a DB in ASP non
esiste solo ODBC. E’ il metodo più usato e forse il più semplice da implementare
abbinandolo ai DSN, ma non è l’unico e neanche il più veloce. OLE-DB è
un’alternativa fornitaci da ADO ed è uno dei primi passi che la Microsoft ha
fatto per implementare efficacemente la sua strategia chiamata UDA (Universal
Data Access). Lo scopo di UDA è di rendere accessibili, in modo uniforme, i dati
provenienti non solo dai DB ma anche da qualunque applicazione come Word, Excel,
Outlook. Ci troveremo quindi in un futuro molto prossimo a collegare non solo
database ma qualunque applicazione OLE-DB compatibile con le nostre pagine ASP.
Non c’è una grande differenza come sintassi. Ad es. per Access:
strConn="Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" &
Server.MapPath ("/cartella/database.mdb")
I tempi di connessione sono però un quarto e i tempi di iterazione circa la
metà rispetto a ODBC (DSN). Quando si manipolano quindi grandi quantità di dati
sarà utile usare OLE-DB. Funziona però solo con ADO 2.0 o superiore (incluso in
Visual Studio 6.0, Windows 2000, Office 2000, IE 5.0 e IIS 5.0 o scaricabile da
Microsoft).
|