Sincronizza Indice |
Scarica il progetto |
Testo dell'articolo |
Stampa l'articolo |
Per utilizzare un database all'interno di un progetto Visual Basic è necessario innanzitutto definire il tipo di interfaccia da utilizzare. Per ogni utilizzo c'è un'interfaccia che è migliore di un'altra. Le interfacce rivolte ai dati più conosciute sono DAO (Data Access Object) e ADO (ActiveX Data Objects). La prima è un'interfaccia più vecchia, ma
più robusta e completa. L'interfaccia DAO è molto ben documentata nella guida in linea di Visual Basic 5, mentre ADO non è neanche accennato perché uscito dopo la pubblicazione di Visual Basic 5. Vedremo quindi come effettuare una connessione a database attraverso ADO. Il database può essere un file sul disco rigido di cui sappiamo il tipo e la posizione oppure un'origine dati DSN di cui sappiamo soltanto il nome. In ogni caso all'atto della connessione con ADO dobbiamo conoscere il Provider da utilizzare, ovvero la soluzione di accesso al database.
Nel nostro esempio faremo una semplice connessione ad un DSN ODBC. Sfrutteremo il DSN DatabaseCDROM che abbiamo creato in un'altra richiesta. Tutte le connessioni ADO richiedono l'impostazione di una stringa di connessione, un insieme di parametri separati da un punto e virgola. La sintassi tipica di una stringa di connessione è:
Dove Provider=MSDASQL è il provider utilizzato per accedere ai DSN. Il campo Provider non è obbligatorio. In sua assenza verrà usato il valore di default, ovvero MSDASQL. Un altro provider molto comune è Microsoft.Jet.OLEDB.4.0, utilizzato per accedere a database di Access 2000. DRIVER è il parametro che specifica il nome del driver da utilizzare. Per Access 97 il suo nome è MS ACCES. DSN naturalmente è il parametro che indica il DSN da aprire. In caso di un DSN su file il parametro si chiamerà FILEDSN. In taluni casi è necessario sostituire la parola DSN con DBQ (per le connessioni DSN-less) oppure con Data Source. UID indica un nome utente da utilizzare per connettersi
al server. Se un database non richiede un nome utente sarà necessario specificare l'utente ADMIN oppure saltare il parametro. Effettuiamo in pratica la connessione al nostro DSN. Abbiamo creato un form ed inserita una ListBox di nome ListaProgrammi in esso. All'interno della routine Form_Load scriviamo il codice seguente:
Le prime due righe dichiarano due variabili: una per la connessione ed
una per la tabella (Recordset)
da aprire. Segue un ciclo che si ripete fintanto che la tabella non è alla
fine. EOF indica End Of File, ovvero fine del file.
Alla fine del ciclo, dobbiamo chiudere la tabella e la connessione, che, altrimenti rimarrebbero aperte, sebbene la vita delle variabili CONNESSIONE e TABELLA si appresta a terminare. Ci rimarrebbero quindi delle risorse bloccate inaccessibili, con un conseguente peggioramento del sistema. Nei processi brevi è bene utilizzare tecniche di questo genere (Apertura - Uso - Chiusura), mentre nei grossi programmi la tecnica da adottare è quella dell'apertura connessione all'avvio del programma e la chiusura della connessione coincide con la chiusura del programma. Questo permette di risparmiare un po' di tempo negli accessi al database. Una volta chiuse tabella e connessione, se siamo sicuri che non ci serviremo più delle variabili dichiarate, siamo obbligati a deallocare la memoria, ovvero a rendere disponibile la memoria occupata dalle variabili. In mancanza di questo la memoria rimarrà bloccata nonostante la chiusura del database e della connessione. È buona regola, in presenza di dichiarazioni dinamiche di oggetti, ricordarsi di deallocare la memoria mediante un'istruzione Set Variabile = Nothing. Vediamo il risultato della nostra operazione? Eccolo.
|
L'apertura di una connessione con ADO potrà sembrare complessa, ma basta conoscere due o tre parametri per avere a disposizione connessioni ai più disparati database. Infatti, mediante la specifica di Provider e Driver, ADO può aprire ogni tipo di base dati. Fibia
FBI
|
Torna all'introduzione delle Richieste dei lettori |