Abbiamo già detto che quando si realizza un sito dinamico si opera quasi
sempre su uno o più database. Prima di interagire con essi è necessario
creare le opportune connessioni. In pratica, bisogna mettere in comunicazione
l'applicazione web con la fonte dati attraverso quegli intermediari o interpreti
che sono i driver dei database (vedi lezione 7).
Per fare ciò si usano le cosiddette "stringhe di connessione",
ovvero istruzioni che contengono i dati necessari al collegamento. Tali dati
sono in genere due: il driver (o provider) usato e il percorso relativo alla
localizzazione del database.
La versione 4 di Ultradev rende più semplice tale operazione. Si accede
al box di configurazione tramite il menu Modify, selezionando quindi
la voce Connections. Ecco come si presenta la finestra da cui impostare
i vari parametri (fig. 1):
In Ultradev (ma il discorso si può estendere a tutti i siti basati su
ASP) si possono creare quattro tipi di connessione ai database. Esaminiamole.
Connessione basata su DSN
Abbiamo già visto in una precedente lezione
cos'è un DSN (Data Source Name) e come si crea. Questa soluzione è
la più semplice e intuitiva. Prevede innanzitutto la creazione in Windows
di un nuovo DSN di sistema e quindi la realizzazione del collegamento in Ultradev.
Scegliendo tale via, dopo aver cliccato su New nella finestra di configurazione
(fig. 1) si seleziona "Data Source Name". Quindi basta configurare
la seconda finestra (fig. 2):
Si assegna innanzitutto un nome univoco alla connessione (Connection Name).
Quindi si sceglie dal menu il DSN (il menu mostra tutti i DSN creati sul sistema).
Se il database è protetto con User Name e Password si riempiono le caselle
corrispondenti. Per finire spuntiamo l'opzione "Using Local DSN".
Un click su Test per verificare che tutto sia a posto.
Questo tipo di connessione è consigliabile solo se si ha la possibilità
di un accesso diretto al server, dove si possono definire i DSN (quasi tutti
i servizi di hosting non ne consentono la creazione). Va comunque bene per lo
sviluppo in locale.
Connessione senza DSN basata su ODBC
Per stabilire connessioni secondo i tre metodi che andremo ora ad esaminare
bisogna scegliere, dopo aver cliccato su New, l'opzione "Custom
Connection String" (fig. 1). In tutti i casi la stringa si inserisce
nella finestra rappresentata nella figura 3:
In una connessione senza DSN (dette altriementi "DSNless")
bisogna inserire nella stringa l'informazione sul driver o provider utilizzato
seguita dal percorso del database sul disco o sul server. Nel caso del DSN,
infatti, il percorso è settato all'origine e incorporato nello stesso.
Nelle connessioni basate su ODBC si sceglie come intermediario il driver corrispondente
al database che utilizziamo. Analizziamo la più classica stringa di connessione,
quella per Microsoft Access:
Driver={Microsoft Access Driver (*.mdb)};Dbq=c:datinome.mdb;
La prima parte fa riferimento al driver ODBC; la seconda (a partire da DBQ)
fa riferimento al percorso. In questo caso stiamo effettuando la connessione
al database "nome.mdb" situato nella directory "c:dati".
Nella finestra mostrata in figura 3, quindi, si assegna un nome alla connessione
e nella casella Connection String si digita la stringa. Per quanto riguarda
gli ultimi due parametri, si possono scegliere, per questo metodo, entrambi
senza problemi.
Per vostra comodità inseriamo alcuni modelli di stringhe che potete
personalizzare secondo le vostre esigenze e inserire nelle vostre connessioni.
Microsoft Access
Driver={Microsoft Access Driver (*.mdb)};Dbq=c:datinomedb.mdb;
dBase
Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=c:datinomedb.dbf;
SQL Server
Driver={SQL Server};Server=nomedelserver;Database=nomedeldatabase;
MySQL
driver={mysql}; database=nomedeldatabase;uid=username;pwd=password;option=16386;
Connessione senza DSN basata su OLE-DB
Le connessioni con OLE-DB hanno come vantaggio principale quello di migliorare
la velocità di connessione ai dati. Nella stringa di connessione invece
del driver viene invocato direttamente il provider dei dati (che cambia a seconda
del database che utilizziamo). Anche per questo metodo forniamo una serie di
stringhe personalizzabili.
Microsoft Access
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:datinomedb.mdb;
SQL Server
Provider=SQLOLEDB;Data Source=nomedelcomputer;Initial Catalog=nomedeldatabase;
Connessione senza DSN basata sul metodo ServerMapPath
Se volete pubblicare il sito su un server esterno, è questo il metodo
migliore. La ragione è semplice. Come avete osservato, negli esempi precedenti
si fa riferimento, nella definizione del percorso del database, al file system
locale (C:percorsoecc.....). Al momento di pubblicare le pagine non è
detto che questa informazione trovi una corrispondenza sul server! La soluzione
arriva grazie al metodo MapPath del linguaggio ASP. Semplificando al
massimo: questo metodo consente di definire percorsi dei database "virtuali"
o logici che siano relativi alla struttura del sito sul web server. Un esempio
per chiarire:
"Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Server.Mappath("tutorial/dati/utenti.mdb")
Come potete osservare una stringa MapPath differisce da quelle "normali"
solo per la presenza delle virgolette e nella sezione del percorso (dopo Dbq).
Nell'esempio si fa riferimento ad un database (utenti.mdb) situato nella
cartella dati, all'interno della directory radice (directory virtuale)
del sito chiamata tutorial. Potete osservare che rispetto alle stringhe
già viste troviamo nella definizione del percorso la classica slash /
utilizzata negli indirizzi internet, e non la backslash utilizzata
per i percorsi fisici o locali! Questo perché il percorso stesso fa riferimento
alla struttura del web server e non del disco locale. Capite dunque quanto questo
metodo possa risultare utile.
Nella configurazione della connessione in Ultradev, quando si usa questo metodo,
è obbligatorio usare come driver di connessione quelli del server.
Dunque, nella finestra (figura 3) bisogna spuntare l'opzione "Using
Driver on Application Server".