Implementazione di connessioni in ADOMD.NET
Per aprire connessioni con origini dati analitiche, ad esempio database di Microsoft SQL Server Analysis Services in ADOMD.NET viene utilizzato l'oggetto AdomdConnection. Quando la connessione non è più necessaria, deve essere chiusa in modo esplicito.
Apertura di una connessione
Per aprire una connessione in ADOMD.NET, è necessario prima specificare una stringa di connessione a un'origine dati analitici valida e un database. Successivamente è necessario stabilire in modo esplicito la connessione con tale origine dati.
Specifica di un'origine dati multidimensionale
Per specificare un'origine dati analitici e un database, impostare la proprietà ConnectionString dell'oggetto AdomdConnection. La stringa di connessione specificata per la proprietà ConnectionString è una stringa conforme a OLE DB. ADOMD.NET utilizza la stringa di connessione specificata per determinare il modo in cui connettersi al server.
La proprietà ConnectionString può essere impostata su un oggetto AdomdConnection esistente o durante la creazione di un'istanza di un oggetto AdomdConnection. Nel codice seguente viene illustrato come impostare la proprietà ConnectionString quando si crea un oggetto [:Microsoft.AnalysisServices.AdomdClient.AdomdConnection]:
Dim advwrksConnection As New AdomdConnection("Data Source=localhost;Catalog=AdventureWorksAS")
System.Diagnostics.Debug.Writeline(advwrksConnection.ConnectionString)
AdomdConnection advwrksConnection = new AdomdConnection("Data Source=localhost;Catalog=AdventureWorksAS");
System.Diagnostics.Debug.Writeline(advwrksConnection.ConnectionString);
Stabilire una connessione con l'origine dati
Dopo avere specificato la stringa di connessione, è necessario utilizzare il metodo Open per aprire la connessione. Quando si apre un oggetto AdomdConnection, è possibile impostare i diversi livelli di sicurezza per la connessione. Il livello di sicurezza utilizzato per la connessione dipende dal valore dell'impostazione ProtectionLevel della stringa di connessione. Per ulteriori informazioni sull'apertura di connessioni protette in ADOMD.NET, vedere Implementazione di connessioni protette in ADOMD.NET.
Utilizzo di una connessione
Ogni connessione aperta esiste in una sessione, in cui viene fornito il supporto per le operazioni con stato. Una sessione può essere condivisa da più di una connessione aperta. La condivisione di una sessione consente a più di un client di utilizzare lo stesso contesto. Per ulteriori informazioni, vedere Utilizzo di connessioni e sessioni in ADOMD.NET.
È possibile utilizzare una connessione aperta per recuperare metadati e dati e per eseguire comandi. Per ulteriori informazioni, vedere Recupero di metadati da un'origine dati analitici, Recupero di dati da un'origine dati analitici e Esecuzione di comandi in un'origine dati analitici.
Quando la connessione è aperta, è possibile recuperare dati e metadati ed eseguire comandi da una transazione di tipo Read Committed, in cui i blocchi condivisi vengono mantenuti durante la lettura dei dati per evitare letture dirty. I dati possono ancora essere modificati prima del termine della transazione, con la conseguente presenza di letture non ripetibili e di dati fantasma. Per ulteriori informazioni, vedere Esecuzione di transazioni in ADOMD.NET.
Chiusura di una connessione
È consigliabile chiudere in modo esplicito un oggetto AdomdConnection non appena la connessione non è più necessaria. Per chiudere in modo esplicito la connessione, utilizzare i metodi Close e Dispose dell'oggetto AdomdConnection.
Una connessione che non viene chiusa in modo esplicito, ma cui è consentito uscire dall'ambito, potrebbe non rilasciare le risorse del server in modo sufficientemente rapido per consentire alle applicazioni client di Analysis Services con elevato grado di concorrenza di aprire nuove connessioni in modo efficiente. In base al modo in cui è stata creata la connessione, la sessione utilizzata dall'oggetto AdomdConnection può rimanere attiva se la connessione non viene chiusa in modo esplicito.
Per ulteriori informazioni sulle sessioni, vedere Utilizzo di connessioni e sessioni in ADOMD.NET.
Importante |
---|
Nel metodo Finalize di ogni classe implementata, non chiamare i metodi Close o Dispose di un oggetto AdomdConnection, AdomdDataReader o di qualsiasi altro oggetto gestito. In un finalizzatore rilasciare solo le risorse non gestite di proprietà diretta della classe implementata. Se la classe implementata non è proprietaria di alcuna risorsa non gestita, non includere un metodo Finalize nella relativa definizione. |