プログラムによる接続の追加

更新 : 2006 年 7 月 17 日

ConnectionManager クラスは、外部データ ソースへの物理接続を表します。ConnectionManager クラスは、ランタイムから接続の実装詳細を分離します。これにより、ランタイムは、一貫した予測可能な方法でそれぞれの接続マネージャとやり取りを行うことができます。接続マネージャには、NameIDDescription、および ConnectionString など、すべての接続に共通のストック プロパティのセットが含まれています。ただし、接続マネージャを構成するために必要なプロパティは、通常 ConnectionString および Name プロパティのみです。接続クラスが Open または Connect などのメソッドを公開して物理的にデータ ソースへの接続を確立する他のプログラミング パラダイムと異なり、ランタイム エンジンは、パッケージの実行中に、そのパッケージのすべての接続を管理します。

Connections クラスは、パッケージに追加されて実行時に使用できる接続マネージャのコレクションです。コレクションの Add メソッドを使用し、接続マネージャの種類を示す文字列を指定することによって、接続マネージャをコレクションに追加できます。Add メソッドは、パッケージに追加された ConnectionManager のインスタンスを返します。

固有プロパティ

ConnectionManager クラスは、すべての接続に共通のプロパティのセットを公開します。ただし、特定の接続の種類に固有のプロパティにアクセスする必要が生じる場合もあります。ConnectionManager クラスの Properties コレクションは、これらのプロパティへのアクセスを提供します。これらのプロパティをコレクションから取得するには、インデクサまたはプロパティ名、および GetValue メソッドを使用し、その値を設定するには SetValue メソッドを使用します。基になる接続オブジェクトのプロパティには、オブジェクトの実際のインスタンスを取得し、そのプロパティを直接設定することもできます。基になる接続を取得するには、接続マネージャの InnerObject プロパティを使用します。次のコード行は、基になるクラス ConnectionManagerAdoNetClass を持つ ADO.NET 接続マネージャを作成する C# の行を示しています。

ConnectionManagerAdoNetClass cmado = cm.InnerObject as ConnectionManagerAdoNet;

これは、マネージ接続マネージャ オブジェクトを、その基になる接続オブジェクトにキャストします。C++ を使用している場合、ConnectionManager オブジェクトの QueryInterface メソッドが呼び出され、基になる接続オブジェクトのインターフェイスが要求されます。

次の表は、Integration Services で用意されている接続マネージャ、および package.Connections.Add("xxx") ステートメントで使用される文字列の一覧を示しています。すべての接続マネージャの一覧については、「接続マネージャ」を参照してください。

文字列 接続マネージャ

"OLEDB"

OLE DB 接続用の接続マネージャ

"ODBC"

ODBC 接続用の接続マネージャ

"ADO"

ADO 接続用の接続マネージャ

"ADO.NET:SQL"

ADO.NET (SQL データ プロバイダ) 接続用の接続マネージャ

"ADO.NET:ODBC"

ADO.NET (OLE DB データ プロバイダ) 接続用の接続マネージャ

"FLATFILE"

フラット ファイル接続用の接続マネージャ

"FILE"

ファイル接続用の接続マネージャ

"MULTIFLATFILE"

複数のフラット ファイル接続用の接続マネージャ

"MULTIFILE"

複数のファイル接続用の接続マネージャ

"SQLMOBILE"

SQL Server 2005 Compact Edition 接続用の接続マネージャ

"MSOLAP90"

Analysis Services 接続用の接続マネージャ

"FTP"

FTP 接続用の接続マネージャ

"HTTP"

HTTP 接続用の接続マネージャ

"MSMQ"

メッセージ キュー (MSMQ) 接続用の接続マネージャ

"SMTP"

SMTP 接続用の接続マネージャ

"WMI"

WMI (Windows Management Instrumentation) 接続用の接続マネージャ

次のコード例では、OLE DB 接続およびファイル接続を PackageConnections コレクションに追加する方法を示します。この例では、次に、ConnectionStringName、および Description プロパティを設定します。

using System;
using Microsoft.SqlServer.Dts.Runtime;

namespace Microsoft.SqlServer.Dts.Samples
{
  class Program
  {
    static void Main(string[] args)
    {
      // Create a package, and retrieve its connections.
      Package pkg = new Package();
      Connections pkgConns = pkg.Connections;

      // Add an OLE DB connection to the package, using the 
      // method defined in the AddConnection class.
      CreateConnection myOLEDBConn = new CreateConnection();
      myOLEDBConn.CreateOLEDBConnection(pkg);

      // View the new connection in the package.
      Console.WriteLine("Connection description: {0}",
         pkg.Connections["SSIS Connection Manager for OLE DB"].Description);

      // Add a second connection to the package.
      CreateConnection myFileConn = new CreateConnection();
      myFileConn.CreateFileConnection(pkg);

      // View the second connection in the package.
      Console.WriteLine("Connection description: {0}",
        pkg.Connections["SSIS Connection Manager for Files"].Description);

      Console.WriteLine();
      Console.WriteLine("Number of connections in package: {0}", pkg.Connections.Count);

      Console.Read();
    }
  }
  // <summary>
  // This class contains the definitions for multiple
  // connection managers.
  // </summary>
  public class CreateConnection
  {
    // Private data.
    private ConnectionManager ConMgr;

    // Class definition for OLE DB Provider.
    public void CreateOLEDBConnection(Package p)
    {
      ConMgr = p.Connections.Add("OLEDB");
      ConMgr.ConnectionString = "Provider=SQLOLEDB.1;" +
        "Integrated Security=SSPI;Initial Catalog=AdventureWorks;" +
        "Data Source=(local);";
      ConMgr.Name = "SSIS Connection Manager for OLE DB";
      ConMgr.Description = "OLE DB connection to the AdventureWorks database.";
    }
    public void CreateFileConnection(Package p)
    {
      ConMgr = p.Connections.Add("File");
      ConMgr.ConnectionString = @"\\<yourserver>\<yourfolder>\books.xml";
      ConMgr.Name = "SSIS Connection Manager for Files";
      ConMgr.Description = "Flat File connection";
    }
  }

}
Imports Microsoft.SqlServer.Dts.Runtime

Module Module1

  Sub Main()

    ' Create a package, and retrieve its connections.
    Dim pkg As New Package()
    Dim pkgConns As Connections = pkg.Connections

    ' Add an OLE DB connection to the package, using the 
    ' method defined in the AddConnection class.
    Dim myOLEDBConn As New CreateConnection()
    myOLEDBConn.CreateOLEDBConnection(pkg)

    ' View the new connection in the package.
    Console.WriteLine("Connection description: {0}", _
      pkg.Connections("SSIS Connection Manager for OLE DB").Description)

    ' Add a second connection to the package.
    Dim myFileConn As New CreateConnection()
    myFileConn.CreateFileConnection(pkg)

    ' View the second connection in the package.
    Console.WriteLine("Connection description: {0}", _
      pkg.Connections("SSIS Connection Manager for Files").Description)

    Console.WriteLine()
    Console.WriteLine("Number of connections in package: {0}", pkg.Connections.Count)

    Console.Read()

  End Sub

End Module

' This class contains the definitions for multiple
' connection managers.

Public Class CreateConnection
  ' Private data.
  Private ConMgr As ConnectionManager

  ' Class definition for OLE DB provider.
  Public Sub CreateOLEDBConnection(ByVal p As Package)
    ConMgr = p.Connections.Add("OLEDB")
    ConMgr.ConnectionString = "Provider=SQLOLEDB.1;" & _
      "Integrated Security=SSPI;Initial Catalog=AdventureWorks;" & _
      "Data Source=(local);"
    ConMgr.Name = "SSIS Connection Manager for OLE DB"
    ConMgr.Description = "OLE DB connection to the AdventureWorks database."
  End Sub

  Public Sub CreateFileConnection(ByVal p As Package)
    ConMgr = p.Connections.Add("File")
    ConMgr.ConnectionString = "\\<yourserver>\<yourfolder>\books.xml"
    ConMgr.Name = "SSIS Connection Manager for Files"
    ConMgr.Description = "Flat File connection"
  End Sub

End Class

サンプルの出力 :

Connection description: OLE DB connection to the AdventureWorks database.

Connection description: OLE DB connection to the AdventureWorks database.

Number of connections in package: 2

変更履歴

リリース 履歴

2006 年 7 月 17 日

変更内容 :
  • コード サンプルを置換し、サンプルの出力を修正しました。

参照

その他の技術情報

Integration Services の接続
接続マネージャの作成

ヘルプおよび情報

SQL Server 2005 の参考資料の入手