IDTSVirtualInput100.SetUsageType(Int32, DTSUsageType) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Mappa un oggetto 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
Il LineageID di quello IDTSVirtualInputColumn100 che viene mappato.
- eUsageType
- DTSUsageType
Un valore dall'enumerazione DTSUsageType che indica come la colonna di input viene utilizzata dal componente.
Valori restituiti
L'indice del nuovo , IDTSInputColumn100o -1 se eUsageType è UT_IGNORED e la colonna viene rimosso dalla collezione di colonne di input.
- Attributi
Esempio
Il seguente esempio di codice mostra l'implementazione sovrascritta di un componente che SetUsageType utilizza gli input SetUsageType virtuali per aggiungere e rimuovere colonne dalla collezione di input. In questo esempio, il componente non permette che le colonne siano scrivibili, quindi quando eUsageType è UT_READWRITE si 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, solitamente nella loro implementazione sovrascritta del metodo della classe SetUsageType base, per aggiungere o rimuovere colonne dalla collezione di colonne di input del componente. Se eUsageType è UT_IGNORED, e la colonna è stata precedentemente aggiunta alla collezione di colonne di input del componente, l'indice della colonna viene rimosso. Se eUsageType è UT_READONLY, o UT_READWRITE, la colonna viene aggiunta alla collezione.
Questo metodo non dovrebbe essere chiamato dagli sviluppatori che stanno creando programmaticamente un compito di flusso dati e selezionando colonne per i componenti del compito. Invece, dovrebbe essere chiamato il SetUsageType metodo dell'istanza in tempo di progettazione del componente. Chiamare direttamente questo metodo bypassa la capacità del componente di limitare le colonne per tipo di dato o tipo di utilizzo.