IDTSVirtualInput100.SetUsageType(Int32, DTSUsageType) Méthode

Définition

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

Paramètres

lLineageID
Int32
eUsageType
DTSUsageType

Retours

L’index du nouveau , IDTSInputColumn100ou -1 si eUsageType est UT_IGNORED et la colonne est retirée de la collection de colonnes d’entrée.

Attributs

Exemples

L’exemple de code suivant montre l’implémentation surchargée par un composant qui SetUsageType utilise le SetUsageType de l’entrée virtuelle pour ajouter et supprimer des colonnes de la collection d’entrée. Dans cet exemple, le composant ne permet pas que les colonnes soient écrivables, donc lorsque eUsageType est UT_READWRITE une exception survient.

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  

Remarques

Les développeurs de composants personnalisés appellent cette méthode, généralement dans leur implémentation suppléante de la méthode de la classe SetUsageType de base, pour ajouter ou retirer des colonnes de la collection de colonnes d’entrée du composant. Si eUsageType est UT_IGNORED, et que la colonne a déjà été ajoutée à la collection de colonnes d’entrée du composant, l’index de colonne est supprimé. Si eUsageType est UT_READONLY, ou UT_READWRITE, la colonne est ajoutée à la collection.

Cette méthode ne doit pas être appelée par les développeurs qui créent programmatiquement une tâche de flux de données et sélectionnent des colonnes pour les composants de la tâche. À la place, la SetUsageType méthode de l’instance au moment de conception du composant doit être appelée. Appeler cette méthode contourne directement la capacité du composant à restreindre les colonnes par type de donnée ou type d’utilisation.

S’applique à