Connessioni in ADOMD.NET
In ADOMD.NET si usa l'oggetto AdomdConnection per aprire connessioni con origini dati analitiche, ad esempio Microsoft SQL Server Analysis Services database. 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 analitica e un database, impostare la ConnectionString proprietà dell'oggetto AdomdConnection . La stringa di connessione specificata per la ConnectionString proprietà è una OLE DB conforme alle specifiche. ADOMD.NET utilizza la stringa di connessione specificata per determinare il modo in cui connettersi al server.
La ConnectionString proprietà può essere impostata su un oggetto AdomdConnection esistente o durante la creazione di un'istanza di un AdomdConnection oggetto . Il codice seguente illustra come impostare la proprietà ConnectionString quando si crea una connessione ADOMD:
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 aver specificato la stringa di connessione, è necessario usare il Open metodo per aprire la connessione. Quando si apre un AdomdConnection oggetto, è possibile impostare vari livelli di sicurezza per la connessione. Il livello di sicurezza usato per la connessione dipende dal valore dell'impostazione della stringa di connessione ProtectionLevel . Per altre informazioni sull'apertura di connessioni protette ADOMD.NET, vedere Stabilire 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 altre informazioni, vedere Uso di connessioni e sessioni in ADOMD.NET.
È possibile utilizzare una connessione aperta per recuperare metadati e dati e per eseguire comandi. Per altre informazioni, vedere Recupero di metadati da un'origine dati analitica , Recupero di dati da un'origine dati analitica ed Esecuzione di comandi su 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 altre informazioni, vedere Esecuzione di transazioni in ADOMD.NET.
Chiusura di una connessione
È consigliabile chiudere in modo AdomdConnection esplicito un oggetto non appena non è più necessaria la connessione. Per chiudere in modo esplicito la connessione, usare i metodi Closee Dispose dell'oggetto AdomdConnection .
Una connessione non chiusa in modo esplicito, ma che può non rientrare nell'ambito, potrebbe non rilasciare risorse del server abbastanza rapidamente da consentire alle applicazioni client Analysis Services concorrenza elevata di aprire in modo efficiente nuove connessioni. A seconda della modalità di creazione della connessione, la sessione usata AdomdConnection dall'oggetto può rimanere attiva se la connessione non viene chiusa in modo esplicito.
Per altre informazioni sulle sessioni, vedere Uso di connessioni e sessioni in ADOMD.NET.
Importante
Nel metodo Finalize di qualsiasi classe implementata non chiamare i metodi Close o Dispose di un AdomdConnection oggetto, AdomdDataReader un oggetto o 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 risorse non gestite, non includere un metodo Finalize nella definizione della classe.