Condividi tramite


IDTSVirtualInput100.SetUsageType(Int32, DTSUsageType) Metodo

Definizione

Esegue il mapping di un oggetto della colonna di input virtuale e ne imposta il tipo di utilizzo.

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

Parametri

lLineageID
Int32

Oggetto LineageID dell'oggetto IDTSVirtualInputColumn100 mappato.

eUsageType
DTSUsageType

Valore dell'enumerazione DTSUsageType che indica la modalità di utilizzo della colonna di input da parte del componente.

Restituisce

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

Attributi

Esempio

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

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;  
}  
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  

Commenti

Gli sviluppatori di componenti personalizzati chiamano questo metodo, in genere nell'implementazione sottoposta a override del metodo della classe SetUsageType di 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 di colonna viene rimosso. Se eUsageType è UT_READONLYo , UT_READWRITEla 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 dell'attività. È invece necessario chiamare il SetUsageType metodo dell'istanza in fase di progettazione del componente. La chiamata a questo metodo ignora direttamente la possibilità del componente di limitare le colonne in base al tipo di dati o al tipo di utilizzo.

Si applica a