Création d'un composant de flux de données personnalisé

Dans Microsoft SQL Server Integration Services, la tâche de flux de données expose un modèle objet qui permet aux développeurs de créer des composants de flux de données personnalisés (sources, transformations et destinations) à l'aide de Microsoft .NET Framework et du code managé.

Une tâche de flux de données comprend des composants qui contiennent une interface IDTSComponentMetaData100 et une collection d'objets IDTSPath100 qui définissent le déplacement de données entre les composants.

Moment de la conception et moment de l'exécution

Avant l'exécution, la tâche de flux de données est dite au moment de la conception, puisqu'elle subit des modifications incrémentielles. Les modifications peuvent inclure l'ajout ou la suppression de composants, l'ajout ou la suppression d'objets de chemin d'accès qui connectent des composants, ainsi que des modifications apportées aux métadonnées des composants. Lorsque des modifications de métadonnées se produisent, le composant peut les surveiller et y réagir. Par exemple, un composant peut rejeter certaines modifications ou apporter des modifications supplémentaires en réponse à une modification. Au moment de la conception, le concepteur interagit avec un composant via l'interface IDTSDesigntimeComponent100 du moment de la conception.

Au moment de l'exécution, la tâche de flux de données examine la séquence de composants, prépare un plan d'exécution et gère un pool de threads de travail qui exécute le plan de travail. Bien que chaque thread de travail effectue un travail qui est interne à la tâche de flux de données, la tâche principale du thread de travail consiste à appeler les méthodes du composant via l'interface IDTSRuntimeComponent100 du moment de l'exécution.

Création d'un composant

Pour créer un composant de flux de données, vous dérivez une classe de la classe de base PipelineComponent, vous appliquez la classe DtsPipelineComponentAttribute, puis vous remplacez les méthodes appropriées de la classe de base. L'objet PipelineComponent implémente les interfaces IDTSDesigntimeComponent100 et IDTSRuntimeComponent100, puis expose leurs méthodes pour que vous les remplaciez dans votre composant.

Selon les objets utilisés par votre composant, votre projet requerra des références à une partie ou la totalité des assemblys suivants :

Fonctionnalité

Assembly à référencer

Espace de noms à importer

Flux de données

Microsoft.SqlServer.PipelineHost

Microsoft.SqlServer.Dts.Pipeline

Wrapper de flux de données

Microsoft.SqlServer.DTSPipelineWrap

Microsoft.SqlServer.Dts.Pipeline.Wrapper

Runtime

Microsoft.SQLServer.ManagedDTS

Microsoft.SqlServer.Dts.Runtime

Wrapper d'exécution

Microsoft.SqlServer.DTSRuntimeWrap

Microsoft.SqlServer.Dts.Runtime.Wrapper

L'exemple de code suivant montre un composant simple dérivé de la classe de base , puis applique l'objet 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
Icône Integration Services (petite) Rester à jour avec Integration Services

Pour obtenir les derniers téléchargements, articles, exemples et vidéos de Microsoft, ainsi que des solutions sélectionnées par la communauté, visitez la page Integration Services sur MSDN ou TechNet :

Pour recevoir une notification automatique de ces mises à jour, abonnez-vous aux flux RSS disponibles sur la page.