プログラムによる接続の追加
ConnectionManager クラスは、外部データ ソースへの物理接続を表します。 ConnectionManager クラスは、ランタイムから接続の実装詳細を分離します。 これにより、ランタイムは、一貫した予測可能な方法でそれぞれの接続マネージャーとやり取りを行うことができます。 接続マネージャーには、Name、ID、Description、および 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") ステートメントで使用される文字列を示しています。 すべての接続マネージャーの一覧については、「Integration Services (SSIS) の接続」を参照してください。
文字列 |
接続マネージャー |
---|---|
"OLEDB" |
OLE DB 接続用の接続マネージャー |
"ODBC" |
ODBC 接続用の接続マネージャー |
"ADO" |
ADO 接続用の接続マネージャー |
"ADO.NET:SQL" |
ADO.NET (SQL データ プロバイダー) 接続用の接続マネージャー |
"ADO.NET:OLEDB" |
ADO.NET (OLE DB データ プロバイダー) 接続用の接続マネージャー |
"FLATFILE" |
フラット ファイル接続用の接続マネージャー |
"FILE" |
ファイル接続用の接続マネージャー |
"MULTIFLATFILE" |
複数のフラット ファイル接続用の接続マネージャー |
"MULTIFILE" |
複数のファイル接続用の接続マネージャー |
"SQLMOBILE" |
SQL Server Compact 接続用の接続マネージャー |
"MSOLAP100" |
Analysis Services 接続用の接続マネージャー |
"FTP" |
FTP 接続用の接続マネージャー |
"HTTP" |
HTTP 接続用の接続マネージャー |
"MSMQ" |
メッセージ キュー (MSMQ) 接続用の接続マネージャー |
"SMTP" |
SMTP 接続用の接続マネージャー |
"WMI" |
WMI (Windows Management Instrumentation) 接続用の接続マネージャー |
次のコード例では、OLE DB 接続およびファイル接続を Package の Connections コレクションに追加する方法を示します。 この例では、次に、ConnectionString、Name、および 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
外部リソース
carlprothman net. の技術記事「接続文字列」
|