创建自定义数据流组件

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

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

注意注意

在您创建自定义提供程序时,需要使用元数据列值更新 ProviderDescriptors.xml 文件。

设计时和运行时

在执行前,称数据流任务处于设计时状态,因为它将接受增量更改。 这些更改可以包括添加或删除组件、添加或删除连接组件的路径对象以及更改组件的元数据。 出现元数据更改时,组件可监视这些更改并对这些更改作出响应。 例如,组件可以禁止某些更改或为响应某一更改而进行其他更改。 在设计时,设计器通过设计时 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。 您需要添加对 Microsoft.SqlServer.DTSPipelineWrap 程序集的引用。

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 上的 Integration Services 页:


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

请参阅

概念

为数据流组件开发用户界面