IDTSVirtualInput100 Interfaz

Definición

public interface class IDTSVirtualInput100 : Microsoft::SqlServer::Dts::Pipeline::Wrapper::Sql2012::IDTSObject100
[System.Runtime.InteropServices.Guid("9944F684-49C4-4354-AB7F-EE422A650E0E")]
[System.Runtime.InteropServices.TypeLibType(System.Runtime.InteropServices.TypeLibTypeFlags.FDispatchable | System.Runtime.InteropServices.TypeLibTypeFlags.FDual)]
public interface IDTSVirtualInput100 : Microsoft.SqlServer.Dts.Pipeline.Wrapper.Sql2012.IDTSObject100
[<System.Runtime.InteropServices.Guid("9944F684-49C4-4354-AB7F-EE422A650E0E")>]
[<System.Runtime.InteropServices.TypeLibType(System.Runtime.InteropServices.TypeLibTypeFlags.FDispatchable | System.Runtime.InteropServices.TypeLibTypeFlags.FDual)>]
type IDTSVirtualInput100 = interface
    interface IDTSObject100
Public Interface IDTSVirtualInput100
Implements IDTSObject100
Atributos
Implementaciones

Ejemplos

El siguiente ejemplo de código muestra cómo usar la entrada virtual para seleccionar las columnas que utiliza un componente al construir programáticamente la tarea de flujo de datos.

public void SelectColumns(IDTSComponentMetaData100 md)  
{  
    // Create the design time instance of the component.  
    CManagedComponentWrapper wrp = md.Instantiate();  

    // Walk the input collection.  
    foreach (IDTSInput100 input in md.InputCollection)  
    {  
        // Get the virtual input columns.  
        IDTSVirtualInput100 vInput = input.GetVirtualInput();  

        // For each virtual column, set its usagetype to READONLY.  
        foreach (IDTSVirtualInputColumn100 vCol in vInput.VirtualInputColumnCollection)  
            wrp.SetUsageType(input.ID, vInput, vCol.LineageID, DTSUsageType.UT_READONLY);  
    }  
}  
Public Sub SelectColumns(ByVal md As IDTSComponentMetaData100)   
 Dim wrp As CManagedComponentWrapper = md.Instantiate   
 For Each input As IDTSInput100 In md.InputCollection   
   Dim vInput As IDTSVirtualInput100 = input.GetVirtualInput   
   For Each vCol As IDTSVirtualInputColumn100 In vInput.VirtualInputColumnCollection   
     wrp.SetUsageType(input.ID, vInput, vCol.LineageID, DTSUsageType.UT_READONLY)   
   Next   
 Next   
End Sub  

El siguiente ejemplo de código muestra un componente de flujo de datos personalizado que selecciona todas las columnas de DT_STR de la entrada virtual cuando la entrada está conectada a un camino.

public override void OnInputPathAttached(int inputID)  
{  
    IDTSInput100 input = ComponentMetaData.InputCollection.GetObjectByID(inputID);  
    IDTSVirtualInput100 vInput = input.GetVirtualInput();  

    foreach (IDTSVirtualInputColumn100 vCol in vInput.VirtualInputColumnCollection)  
    {  
        if (vCol.DataType == DataType.DT_STR)  
        {  
            this.SetUsageType(inputID, vInput, vCol.LineageID, DTSUsageType.UT_READONLY);  
        }  
    }  
}  
Public Overrides Sub OnInputPathAttached(ByVal inputID As Integer)   
 Dim input As IDTSInput100 = ComponentMetaData.InputCollection.GetObjectByID(inputID)   
 Dim vInput As IDTSVirtualInput100 = input.GetVirtualInput   
 For Each vCol As IDTSVirtualInputColumn100 In vInput.VirtualInputColumnCollection   
   If vCol.DataType = DataType.DT_STR Then   
     Me.SetUsageType(inputID, vInput, vCol.LineageID, DTSUsageType.UT_READONLY)   
   End If   
 Next   
End Sub  

Comentarios

Se IDTSVirtualInput100 obtiene llamando al GetVirtualInput método de un IDTSInput100 objeto. La VirtualInputColumnCollection propiedad contiene las columnas que están disponibles desde los componentes aguas arriba en el grafo.

Al construir programáticamente una tarea de flujo de datos, las columnas virtuales se seleccionan para un componente llamando al SetUsageType método de la CManagedComponentWrapperClass.

Los desarrolladores que desarrollan componentes personalizados de flujo de datos utilizan la entrada virtual para descubrir las columnas ascendentes disponibles y, dependiendo del componente, añadir columnas a la entrada basándose en las columnas de la colección virtual.

Dado que la entrada virtual es un reflejo de las columnas aguas arriba, las modificaciones en la entrada virtual o en las columnas de la colección de entradas virtuales no tienen ningún impacto en sí IDTSOutput100 misma.

Se aplica a