IDTSVirtualInput100.SetUsageType(Int32, DTSUsageType) Metodo

Definizione

public:
 int SetUsageType(int lLineageID, Microsoft::SqlServer::Dts::Pipeline::Wrapper::Sql2014::DTSUsageType eUsageType);
[System.Runtime.InteropServices.DispId(104)]
public int SetUsageType (int lLineageID, Microsoft.SqlServer.Dts.Pipeline.Wrapper.Sql2014.DTSUsageType eUsageType);
[<System.Runtime.InteropServices.DispId(104)>]
abstract member SetUsageType : int * Microsoft.SqlServer.Dts.Pipeline.Wrapper.Sql2014.DTSUsageType -> int
Public Function SetUsageType (lLineageID As Integer, eUsageType As DTSUsageType) As Integer

Parametri

lLineageID
Int32
eUsageType
DTSUsageType

Restituisce

Indice dell'oggetto appena creato IDTSInputColumn100oppure -1 se eUsageType è UT_IGNORED e la colonna viene rimossa dalla raccolta di colonne di input.

Attributi

Esempio

Nell'esempio di codice seguente viene illustrata l'implementazione sottoposta a override di un componente che SetUsageType usa setUsageType dell'input virtuale per aggiungere e rimuovere colonne dalla raccolta di input. In questo esempio, il componente non consente la scrittura delle colonne, pertanto quando eUsageType viene UT_READWRITE si verifica un'eccezione.

Public Overrides Function SetUsageType(ByVal inputID As Integer, ByVal virtualInput As IDTSVirtualInput100, ByVal lineageID As Integer, ByVal usageType As DTSUsageType) As IDTSInputColumn100   
 If usageType = DTSUsageType.UT_READWRITE Then   
   Throw New Exception("Read write columns prohibited.")   
 End If   
 Dim input As IDTSInput100 = ComponentMetaData.InputCollection.GetObjectByID(inputID)   
 Dim index As Integer = virtualInput.SetUsageType(lineageID, usageType)   
 If Not (index = -1) Then   
   Return input.InputColumnCollection(index - 1)   
 End If   
 Return Nothing   
End Function  
public override IDTSInputColumn100 SetUsageType(int inputID, IDTSVirtualInput100 virtualInput, int lineageID, DTSUsageType usageType)  
{  
    // Prevent use of read/write columns.  
    if (usageType == DTSUsageType.UT_READWRITE)  
        throw new Exception("Read write columns prohibited.");  

    // Get the input specified by inputID.  
    IDTSInput100 input = ComponentMetaData.InputCollection.GetObjectByID(inputID);  

    int index = virtualInput.SetUsageType(lineageID, usageType);  

    // If the index is not -1, return the column.  
    // NOTE: The index that is returned is 1-based, but the input column collection is 0-based.  
    if ( index != -1 )  
        return input.InputColumnCollection[index-1];  

    // The column was removed, so return null.  
    return null;  
}  

Commenti

Gli sviluppatori di componenti personalizzati chiamano questo metodo, in genere nell'implementazione sottoposta a override del metodo della classe SetUsageType base, per aggiungere o rimuovere colonne dalla raccolta di colonne di input del componente. Se eUsageType è UT_IGNORED e la colonna è stata aggiunta in precedenza alla raccolta di colonne di input del componente, l'indice della colonna viene rimosso. Se eUsageType è UT_READONLY o UT_READWRITE, la colonna viene aggiunta alla raccolta.

Questo metodo non deve essere chiamato dagli sviluppatori che creano a livello di codice un'attività flusso di dati e selezionano colonne per i componenti nell'attività. È invece necessario chiamare il SetUsageType metodo dell'istanza in fase di progettazione del componente. La chiamata a questo metodo ignora direttamente la capacità del componente di limitare le colonne in base al tipo di dati o al tipo di utilizzo.

Si applica a