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.
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.