|
ASP a puntate - lez. 4
Pagina :
1 |
2
| 3
| 4
Query con ASP
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).
Pagina :
1
|
2 |
3 |
4
|