Share via


Implementazione di connessioni in ADOMD.NET

Per aprire connessioni con origini dati analitiche, ad esempio database di MicrosoftSQL ServerAnalysis 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 analitica 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 analitica 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 protezione per la connessione. Il livello di protezione 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 analitica, Recupero di dati da un'origine dati analitica e Esecuzione di comandi in un'origine dati analitica.

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.

Nota importanteImportante

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.

Vedere anche

Riferimento