ADOMD.NET での接続の確立

ADOMD.NET では、AdomdConnection オブジェクトを使用して、MicrosoftSQL ServerAnalysis Services データベースなどの分析データ ソースとの接続を開きます。接続が不要になったときは、その接続を明示的に閉じる必要があります。

接続を開く

ADOMD.NET で接続を開くには、まず、有効な分析データ ソースおよびデータベースの接続文字列を指定します。その後、そのデータ ソースへの接続を明示的に開く必要があります。

多次元データ ソースの指定

分析データ ソースおよびデータベースを指定するには、AdomdConnection オブジェクトの ConnectionString プロパティを設定します。ConnectionString プロパティに対して指定する接続文字列は、OLE DB 準拠の文字列です。ADOMD.NET は、指定された接続文字列を使用して、サーバーへの接続方法を決定します。

ConnectionString プロパティは、既存の AdomdConnection オブジェクトに対して設定するか、AdomdConnection オブジェクトのインスタンスの作成中に設定できます。[:Microsoft.AnalysisServices.AdomdClient.AdomdConnection] を作成する際に ConnectionString プロパティを設定するコードの例を次に示します。

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);

データ ソースへの接続を開く

接続文字列を指定したら、Open メソッドを使用して接続を開く必要があります。AdomdConnection オブジェクトを開くときに、接続に対してさまざまなレベルのセキュリティを設定できます。接続に対して使用されるセキュリティ レベルは、ProtectionLevel 接続文字列の設定値によって異なります。ADOMD.NET で、セキュリティ保護された接続を開く操作の詳細については、「ADOMD.NET でのセキュリティ保護された接続の確立」を参照してください。

接続の操作

開いた各接続には、ステートフルな操作をサポートするセッションが割り当てられます。1 つのセッションを、開いている複数の接続で共有できます。セッションを共有すると、複数のクライアントで同じコンテキストを共有できます。詳細については、「ADOMD.NET での接続およびセッションの使用」を参照してください。

開いた接続を使用して、メタデータとデータを取得し、コマンドを実行できます。詳細については、「分析データ ソースからのメタデータの取得」、「分析データ ソースからのデータの取得」、および「分析データ ソースに対するコマンドの実行」を参照してください。

接続が開いているときは、READ COMMITTED トランザクション内からデータやメタデータを取得し、コマンドを実行することができます。このトランザクションでは、ダーティ リードを回避するため、データの読み込み中は共有ロックが保持されます。ただし、その場合でも、トランザクションが終了する前にデータが変更され、反復不能読み取りやファントム データとなる場合があります。詳細については、「ADOMD.NET でのトランザクションの実行」を参照してください。

接続を閉じる

接続が不要になったらすぐに、AdomdConnection オブジェクトを明示的に閉じることをお勧めします。接続を明示的に閉じるには、AdomdConnection オブジェクトの Close および Dispose メソッドを使用します。

接続を明示的に閉じず、スコープから除外しただけの場合、サーバー リソースが即座に解放されず、同時実行性の高い Analysis Services クライアント アプリケーションが接続を効率的に開けない可能性があります。接続を明示的に閉じない場合、その接続をどのように作成したかによっては、AdomdConnection オブジェクトで使用するセッションがアクティブのままになることもあります。

セッションの詳細については、「ADOMD.NET での接続およびセッションの使用」を参照してください。

重要な注意事項重要

実装したクラスの Finalize メソッド内で AdomdConnection オブジェクト、AdomdDataReader オブジェクト、またはその他のマネージ オブジェクトの Close メソッドまたは Dispose メソッドを呼び出さないでください。ファイナライザでは、実装したクラスが直接所有しているアンマネージ リソースのみ解放してください。実装したクラスがアンマネージ リソースを所有していない場合、Finalize メソッドをクラス定義に含めないでください。