MDAC MDAC è l acronimo di Microsoft Data Access Component e fa parte della tecnologia Microsoft denominata Universal Data Access (UDA). Mette a disposizione una serie di componenti per l accesso a svariate tipologie di dati. Di questa tipologia fanno parte: ADO OLE DB ODBC Attualmente la versione disponibile di MDAC è la 2.8 ma faremo riferimento alla 2.6.
ODBC È un interfaccia composta da una serie di API che consentono l accesso ai dati di diversi DBMS (Data Base Management System) fornendo un linguaggio comune d interazione. Grazie a ODBC è possibile far dialogare tra loro applicazioni e origini dati diversi, a un livello di astrazione tale che la tipologia di dati non influisca sulla modalità di interrogazione degli stessi.
OLE DB OLE DB è l evoluzione di ODBC. Sono delle interfacce COM che consentono di scrivere applicazioni senza tener conto della struttura dei dati. I componenti OLE DB sono formati da: Data Providers: consentono l accesso alle informazioni usando una struttura astratta comune. Service components: elaborano e trasportano le informazioni. Data consumers: usano le informazioni.
ADO ADO rappresenta un modello di programmazione a livello di applicazione per OLE DB. Questo significa che può essere utilizzato da diversi linguaggi di programmazione per accedere a qualsiasi struttura dati: Visual Basic Java C/C++ JavaScript (con ASP) XML Con ADO si ha inoltre il vantaggio di un utilizzo minimo di risorse (memoria e processi CPU).
ADO espone tre oggetti principali: Connection Recordset Command Gli Oggetti ADO Tali oggetti espongono altri componenti come Fields, Property e Parameter.
Oggetto Connection Rappresenta l oggetto utilizzato per la connessione fisica alla fonte dei dati. I parametri di connessione necessari sono: Il Provider OLE DB Il Server Il nome del database. Esempi di stringhe di connessione: Provider=Microsoft.Jet.OLEDB.4.0; Data Source=database.mdb Provider=SQLOLEDB.1; Server='localhost'; Database=nomeDatabase; trusted_connection=true; Provider=SQLOLEDB.1; Persist Security Info=False;User ID=utente;PWD=pwd; Initial Catalog=nome;Data Source=localhost; Provider=MSDASQL.1; DRIVER={MySQL ODBC 3.51 Driver}; DATABASE=nome; SERVER=localhost; UID=utente;PASSWORD=pwd; Provider=MSDAORA; DATABASE=nome; SERVER=localhost; UID=utente;PASSWORD=pwd;
Opzioni per la stringa di connessione 1/2 Opzione Descrizione Connection Timeout Connection Lifetime Connection Reset Data Source o Server o Address o Network Address Initial Catalog o Database Integrated Security o Trusted_Connection Max Pool Size Min Pool Size Tempo di attesa in secondi di una connessione al server prima che il tentativo sia terminato e venga generato un errore (15). Utile nei pool di connessione per bilanciare il carico tra server in esecuzione e server appena entrato in linea (0). Determina se reimpostare la connessione quando viene restituita al pool. Predefinito true, se impostato a false migliora le prestazioni. Il nome del Server a cui connettersi. Il nome del database Indica se la connessione deve essere protetta (false). Numero massimo di connessioni nel pool (500). Numero minimo di connessioni consentite nel pool(0).
Opzioni per la stringa di connessione 2/2 Opzione Packet Size Password o Pwd Persist Security Info User ID Descrizione Dimensione in byte dei pacchetti di rete utilizzati per comunicare con il Server (8192). La password per l'accesso dell'account. Se l'impostazione è 'false', le informazioni sensibili alla protezione, come la password, non saranno restituite come parte della connessione se quest'ultima è aperta (false). Il nome dell account.
Metodo Open Il metodo Open dell oggetto Connection, è quello che permette di aprire una connessione a una fonte di dati: Connection.Open Stringa_di_connessione Un altro metodo meno usato, ma importante per ricavare informazioni utili sui database e sulla loro struttura, è: Connection.OpenSchema (costante) Dove costante è il tipo di query da eseguire sul provider. Tale metodo restituisce un oggetto Recordset.
L oggetto Recordset È l oggetto che ci permette di estrarre i dati dalla fonte: Recordset.Open Sql, Connessione_Attiva,cursore, modalità Dove Sql è una qualsiasi query di selezione che potrà restituire 0 o più record. If Not Rc.EOF Then While Not Rc.EOF Rc!nome_Campo Rc.MoveNext Wend End If Rc.Close Set RC=Nothing
Recordset: I cursori In ADO sono disponibili quattro diversi tipi di cursore: Cursore dinamico: consente di visualizzare modifiche, aggiunte ed eliminazioni sul recordset e tutti i tipi di movimento. Cursore direzionale: consente di visualizzare solo le modifiche e di effettuare tutti i tipi di movimento tramite il Recordset. Cursore statico: non rileva alcuna modifica al recordset e consente tutti i tipi di movimento. Cursore a scorrimento in avanti: consente di scorrere i record solo in avanti. In questo modo si migliorano le prestazioni quando è necessario effettuare un solo passaggio all'interno di un Recordset.
Recordset: Le modalità di accesso adlockreadonly: Sola lettura Impossibile modificare i dati (impostazione predefinita). adlockpessimistic: permette le modifiche bloccando i record. adlockoptimistic:permette le modifiche, vincolando i record solo quando viene richiamato il metodo update. adlockbatchoptimistic: Aggiornamento batch ottimistico.
L oggetto Command Lo si utilizza per eseguire dei comandi (INSERT, UPDATE e DELETE). Può anche eseguire query di selezione ma viste le sue caratteristiche si presta meglio per query che non restituiscono alcun recordset. Command.CommandText=Sql Command.ActiveConnection=Connessione_Attiva Command.Execute