Creazione di un componente flusso di dati personalizzato

In Microsoft SQL Server Integration Services l'attività Flusso di dati espone un modello a oggetti che consente agli sviluppatori di creare componenti flusso di dati personalizzati, ovvero origini, trasformazioni e destinazioni, tramite Microsoft .NET Framework e codice gestito.

Un'attività Flusso di dati è costituita da componenti che contengono un'interfaccia IDTSComponentMetaData100 e una raccolta di oggetti IDTSPath100 che definiscono lo spostamento di dati tra componenti.

[!NOTA]

Quando si crea un provider personalizzato, è necessario aggiornare il file ProviderDescriptors.xml con i valori delle colonne di metadati.

Fase di progettazione e di esecuzione

Prima dell'esecuzione, l'attività Flusso di dati si trova nel cosiddetto stato della fase di progettazione, quando viene sottoposta a modifiche incrementali. Tali modifiche possono includere l'aggiunta o la rimozione di componenti, l'aggiunta o la rimozione degli oggetti percorso che connettono i componenti e modifiche ai metadati dei componenti. Quando si verificano modifiche ai metadati, il componente può monitorarle e rispondere. Ad esempio, un componente può impedire determinate modifiche o aggiungerne altre in risposta a una modifica. In fase di progettazione la finestra di progettazione interagisce con un componente tramite l'interfaccia IDTSDesigntimeComponent100 della fase di progettazione.

In fase di esecuzione l'attività Flusso di dati esamina la sequenza di componenti, prepara un piano di esecuzione e gestisce un pool di thread di lavoro che eseguono il piano di lavoro. Anche se ogni thread di lavoro esegue alcune operazioni interne all'attività Flusso di dati, la principale attività di questo thread è chiamare i metodi del componente tramite l'interfaccia IDTSRuntimeComponent100 di runtime.

Creazione di un componente

Per creare un componente flusso di dati, derivare una classe dalla classe di base PipelineComponent, applicare la classe DtsPipelineComponentAttribute, quindi eseguire l'override dei metodi appropriati della classe di base. L'oggetto PipelineComponent implementa le interfacce IDTSDesigntimeComponent100 e IDTSRuntimeComponent100 ed espone i relativi metodi da sottoporre a override nel componente.

A seconda degli oggetti utilizzati dal componente, il progetto richiederà riferimenti ad alcuni o a tutti gli assembly seguenti:

Caratteristica

Assembly a cui fare riferimento

Spazio dei nomi da importare

Flusso di dati

Microsoft.SqlServer.PipelineHost

Microsoft.SqlServer.Dts.Pipeline

Wrapper del flusso di dati

Microsoft.SqlServer.DTSPipelineWrap

Microsoft.SqlServer.Dts.Pipeline.Wrapper

Runtime

Microsoft.SQLServer.ManagedDTS

Microsoft.SqlServer.Dts.Runtime

Wrapper del runtime

Microsoft.SqlServer.DTSRuntimeWrap

Microsoft.SqlServer.Dts.Runtime.Wrapper

Nell'esempio di codice seguente è illustrato un componente semplice che deriva dalla classe di base e applica DtsPipelineComponentAttribute. È necessario aggiungere un riferimento all'assembly 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
Icona di Integration Services (piccola) Rimanere aggiornati con Integration Services

Per i download, gli articoli, gli esempi e i video Microsoft più recenti, oltre alle soluzioni selezionate dalla community, visitare la pagina Integration Services sul sito MSDN:


Per ricevere una notifica automatica su questi aggiornamenti, sottoscrivere i feed RSS disponibili nella pagina.

Vedere anche

Concetti

Sviluppo di un'interfaccia utente per un componente del flusso di dati