以编程方式添加连接
适用范围:SQL Server Azure 数据工厂中的 SSIS Integration Runtime
ConnectionManager 类表示与外部数据源的物理连接。 ConnectionManager 类可将连接的实现细节与运行时隔离。 这使得运行时以一致且可预测的方式与每个连接管理器进行交互。 连接管理器包含所有连接通用的常用属性,如 Name、ID、Description 和 ConnectionString。 但是,通常配置连接管理器只需 ConnectionString 和 Name 属性。 在其他编程范例中,连接类会提供一些方法(如“打开”或“连接”)以物理方式建立与数据源的连接,而不同的是,运行时引擎会在包运行时管理包的所有连接。
Connections 类是一个已添加到该包并且可在运行时使用的连接管理器的集合。 可以使用该集合的 Add 方法,并提供一个用于指示连接管理器类型的字符串,以向该集合添加更多的连接管理器。 Add 方法返回已添加到该包的 ConnectionManager 实例。
内部属性
ConnectionManager 类公开一组所有连接通用的属性。 但有时需要访问特定连接类型特有的属性。 Properties 类的 ConnectionManager 集合提供对这些属性的访问。 可以使用索引器或属性名称以及 GetValue 方法从集合检索这些属性,并使用 SetValue 方法设置属性的值。 设置基础连接对象属性的属性的另一种方法是:获取该对象的实际实例并直接设置其属性。 若要获取基础连接,请使用连接管理器的 InnerObject 属性。 下面的代码行显示了一行 C# 代码,该代码行创建一个具有基础类 ConnectionManagerAdoNetClass 的 ADO.NET 连接管理器。
ConnectionManagerAdoNetClass cmado = cm.InnerObject as ConnectionManagerAdoNet;
这可将托管连接管理器对象转换为其基础连接对象。 如果使用 C++,则需要调用 ConnectionManager 对象的 QueryInterface 方法,并请求基础连接对象的接口。
下表列出了集成服务中包含的连接管理器以及 package.Connections.Add("xxx")
语句中使用的字符串。 若要获取所有连接管理器的列表,请参阅 Integration Services (SSIS) 连接。
String | “ODBC 源编辑器” |
---|---|
"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" | Microsoft Windows Management Instrumentation (WMI) 连接的连接管理器。 |
下面的代码示例演示如何向 Connections 的 Package 集合添加 OLE DB 和 FILE 连接。 然后,该示例还设置了 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: Flat File connection.
Number of connections in package: 2