创建自定义数据流组件

在 Microsoft SQL Server Integration Services 中,数据流任务公开一个对象模型,该对象模型允许开发人员使用 Microsoft .NET Framework 和托管代码创建自定义数据流组件:源、转换和目标。

数据流任务由包含 IDTSComponentMetaData100 接口和 IDTSPath100 对象集合的组件组成,这些对象定义组件之间的数据移动。

设计时和运行时

在执行前,称数据流任务处于设计时状态,因为它将接受增量更改。这些更改可以包括添加或删除组件、添加或删除连接组件的路径对象以及更改组件的元数据。出现元数据更改时,组件可监视这些更改并对这些更改作出响应。例如,组件可以禁止某些更改或为响应某一更改而进行其他更改。在设计时,设计器通过设计时 IDTSDesigntimeComponent100 接口与组件进行交互。

在执行时,数据流任务将检查一系列组件、准备执行计划以及管理执行工作计划的工作线程池。虽然每个工作线程都执行数据流任务的一些内部工作,但工作线程的主要任务是通过运行时 IDTSRuntimeComponent100 接口调用组件的方法。

创建组件

若要创建数据流组件,可从 PipelineComponent 基类派生类,再应用 DtsPipelineComponentAttribute 类,然后重写适当的基类方法。PipelineComponent 实现 IDTSDesigntimeComponent100IDTSRuntimeComponent100 接口,并公开这些接口的方法,供您在组件中重写。

根据您的组件所使用的对象,您的项目将需要引用以下部分或全部程序集:

功能

要引用的程序集

要导入的命名空间

数据流

Microsoft.SqlServer.PipelineHost

Microsoft.SqlServer.Dts.Pipeline

数据流包装

Microsoft.SqlServer.DTSPipelineWrap

Microsoft.SqlServer.Dts.Pipeline.Wrapper

运行时

Microsoft.SQLServer.ManagedDTS

Microsoft.SqlServer.Dts.Runtime

运行时包装

Microsoft.SqlServer.DTSRuntimeWrap

Microsoft.SqlServer.Dts.Runtime.Wrapper

下面的代码示例演示了一个简单的组件,该组件从基类派生,并应用 DtsPipelineComponentAttribute

using System;
using Microsoft.SqlServer.Dts.Pipeline;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;

namespace Microsoft.Samples.SqlServer.Dts
{
    [DtsPipelineComponent(DisplayName = "SampleComponent", ComponentType = ComponentType.Transform )]
    public class BasicComponent: PipelineComponent
    {
        // TODO: Override the base class methods.
    }
}
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper

<DtsPipelineComponent(DisplayName:="SampleComponent", ComponentType:=ComponentType.Transform)> _
Public Class BasicComponent

    Inherits PipelineComponent

    ' TODO: Override the base class methods.

End Class
Integration Services 图标(小) 使 Integration Services 保持最新

若要从 Microsoft 获得最新的下载内容、文章、示例和视频,以及从社区获得所选解决方案,请访问 MSDN 或 TechNet 上的 Integration Services 页:

若要获得有关这些更新的自动通知,请订阅该页上提供的 RSS 源。