Freigeben über


Erstellen einer benutzerdefinierten Datenflusskomponente

In MicrosoftSQL ServerIntegration Services stellt der Datenflusstask ein Objektmodell zur Verfügung, das Entwicklern das Erstellen von benutzerdefinierten Datenflusskomponenten (Quellen, Transformationen und Ziele) anhand von Microsoft.NET Framework und verwaltetem Code ermöglicht.

Ein Datenflusstask besteht aus Komponenten, die eine IDTSComponentMetaData100-Schnittstelle und eine Auflistung von IDTSPath100-Objekten enthalten, die die Verschiebung von Daten zwischen Komponenten definieren.

Entwurfszeit und Laufzeit

Vor der Ausführung befindet sich der Datenflusstask im so genannten Entwurfszeitstatus, während er inkrementelle Änderungen durchläuft. Zu den Änderungen kann das Hinzufügen oder Entfernen von Komponenten, das Hinzufügen oder Entfernen von Pfadobjekten zur Verbindung von Komponenten sowie Änderungen an den Metadaten der Komponenten gehören. Wenn Metadaten-Änderungen auftreten, kann die Komponente die Änderungen überwachen und darauf reagieren. Zum Beispiel kann eine Komponente bestimmte Änderungen nicht zulassen oder zusätzliche Änderungen als Reaktion auf eine Änderung vornehmen. Zur Entwurfszeit interagiert der Designer mit einer Komponente durch die Entwurfszeitschnittstelle IDTSDesigntimeComponent100.

Zur Ausführungszeit wird vom Datenflusstask die Reihenfolge von Komponenten überprüft, ein Ausführungsplan vorbereitet und ein Pool von Arbeitsthreads verwaltet, die den Arbeitsplan ausführen. Auch wenn jeder Arbeitsthread einige interne Arbeiten im Datenflusstask ausführt, besteht die Hauptaufgabe des Arbeitsthread darin, die Methoden der Komponenten über die Laufzeitschnittstelle IDTSRuntimeComponent100 aufzurufen.

Erstellen einer Komponente

Zum Erstellen einer Datenflusskomponente leiten Sie eine Klasse von der PipelineComponent-Basisklasse ab, wenden die DtsPipelineComponentAttribute-Klasse an und überschreiben dann die entsprechenden Methoden der Basisklasse. Mit PipelineComponent werden die Schnittstellen IDTSDesigntimeComponent100 und IDTSRuntimeComponent100 implementiert und die Methoden zum Überschreiben in der Komponente zur Verfügung gestellt.

Abhängig von den in der Komponente verwendeten Objekten erfordert Ihr Projekt Verweise auf einige oder alle der folgenden Assemblys:

Funktion

Verweis auf Assembly

Zu importierender Namespace

Datenfluss

Microsoft.SqlServer.PipelineHost

Microsoft.SqlServer.Dts.Pipeline

Datenfluss-Wrapper

Microsoft.SqlServer.DTSPipelineWrap

Microsoft.SqlServer.Dts.Pipeline.Wrapper

Typ

Microsoft.SQLServer.ManagedDTS

Microsoft.SqlServer.Dts.Runtime

Laufzeit-Wrapper

Microsoft.SqlServer.DTSRuntimeWrap

Microsoft.SqlServer.Dts.Runtime.Wrapper

Das folgende Codebeispiel zeigt eine einfache Komponente, die aus der Basisklasse abgeleitet wird, und wendet DtsPipelineComponentAttribute an.

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 (kleines Symbol) Bleiben Sie mit Integration Services auf dem neuesten Stand

Die neuesten Downloads, Artikel, Beispiele und Videos von Microsoft sowie ausgewählte Lösungen aus der Community finden Sie auf der Integration Services-Seite von MSDN oder TechNet:

Abonnieren Sie die auf der Seite verfügbaren RSS-Newsfeeds, um automatische Benachrichtigungen zu diesen Aktualisierungen zu erhalten.