在脚本组件中连接数据源
连接管理器是一个封装和存储连接特定类型数据源所需信息的便利单元。有关详细信息,请参阅 Integration Services 连接。
单击**“脚本转换编辑器”的“连接管理器”页上的“添加”和“删除”按钮,可使现有连接管理器能够由源或目标组件中的自定义脚本访问。但是,您必须编写自己的自定义代码才能加载或保存数据,并且才有可能打开和关闭与数据源的连接。有关“脚本转换编辑器”的“连接管理器”**页的详细信息,请参阅在脚本组件编辑器中配置脚本组件和脚本转换编辑器(“连接管理器”页)。
脚本组件在 ComponentWrapper 项目项中创建一个 Connections 集合类,该集合类为每个连接管理器包含一个强类型的取值函数,该取值函数与连接管理器本身同名。此集合通过 ScriptMain 类的 Connections 属性公开。该取值函数属性返回对作为 IDTSConnectionManager100 实例的连接管理器的引用。例如,如果已在对话框的“连接管理器”页中添加名为 MyADONETConnection 的连接管理器,则可在脚本中添加以下代码来获取对该连接管理器的引用:
Dim myADONETConnectionManager As IDTSConnectionManager100 = _
Me.Connections.MyADONETConnection
注意 |
---|
您在调用 AcquireConnection 之前必须了解连接管理器返回的连接的类型。由于脚本任务启用了 Option Strict,因此在使用连接之前,必须先将连接(返回类型为 Object)转换为适当的连接类型。 |
接下来,调用特定连接管理器的 AcquireConnection 方法以获取基础连接或连接数据源所需的信息。例如,可以使用以下代码获取对 ADO.NET 连接管理器包装的 System.Data.SqlConnection 的引用:
Dim myADOConnection As SqlConnection = _
CType(MyADONETConnectionManager.AcquireConnection(Nothing), SqlConnection)
相反,对平面文件连接管理器的相同调用只返回该文件数据源的路径和文件名。
Dim myFlatFile As String = _
CType(MyFlatFileConnectionManager.AcquireConnection(Nothing), String)
然后,必须向 System.IO.StreamReader 或 Streamwriter 提供此路径和文件名才能读或写该平面文件中的数据。
重要提示 |
---|
在脚本组件中编写托管代码时,不能调用返回非托管对象的连接管理器(如 OLE DB 连接管理器和 Excel 连接管理器)的 AcquireConnection 方法。但是,您可以读取这些连接管理器的 ConnectionString 属性,并使用 System.Data.OleDb 命名空间的 OLEDB connection 的连接字符串在代码中直接连接数据源。 如果需要调用返回非托管对象的连接管理器的 AcquireConnection 方法,可使用 ADO.NET 连接管理器。配置 ADO.NET 连接管理器为使用 OLE DB 访问接口时,该连接管理器使用用于 OLE DB 的 .NET Framework 数据访问接口进行连接。在这种情况下,AcquireConnection 方法将返回 System.Data.OleDb.OleDbConnection,而不是非托管对象。若要配置用于 Excel 数据源的 ADO.NET 连接管理器,请选择 Microsoft OLE DB Provider for Jet,再指定 Excel 工作簿,然后在“连接管理器”对话框的“全部”页上输入 Excel 8.0(对于 Excel 97 及更高版本)作为“扩展属性”的值。 |
有关如何在脚本组件中使用连接管理器的详细信息,请参阅使用脚本组件创建源和使用脚本组件创建目标。
|