IDTSVirtualInput100.SetUsageType(Int32, DTSUsageType) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ordnet ein virtuelles Eingabespaltenobjekt zu und legt seinen Verwendungstyp fest.
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
Parameter
- lLineageID
- Int32
LineageID der zugeordneten IDTSVirtualInputColumn100.
- eUsageType
- DTSUsageType
Ein Wert aus der DTSUsageType-Enumeration, der angibt, wie die Eingabespalte von der Komponente verwendet wird.
Gibt zurück
Der Index der neu erstellten IDTSInputColumn100 oder -1, wenn eUsageType
den Wert UT_IGNORED hat und die Spalte aus der Auflistung von Eingabespalten entfernt wird.
- Attribute
Beispiele
Das folgende Codebeispiel zeigt die überschriebene Implementierung SetUsageType einer Komponente, die die virtuellen Eingaben SetUsageType zum Hinzufügen und Entfernen von Spalten aus der Eingabesammlung verwendet. In diesem Beispiel lässt die Komponente nicht zu, dass Spalten schreibbar sind, eUsageType
UT_READWRITE sodass eine Ausnahme auftritt.
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
Hinweise
Entwickler benutzerdefinierter Komponenten rufen diese Methode in der Regel in ihrer überschriebenen Implementierung der Basisklassenmethode SetUsageType auf, um Spalten der Eingabespaltenauflistung der Komponente hinzuzufügen oder daraus zu entfernen. Wenn eUsageType
der Wert ist UT_IGNOREDund die Spalte zuvor der Eingabespaltenauflistung der Komponente hinzugefügt wurde, wird der Spaltenindex entfernt. Wenn eUsageType
oder UT_READWRITEistUT_READONLY, wird die Spalte der Auflistung hinzugefügt.
Diese Methode sollte nicht von Entwicklern aufgerufen werden, die programmgesteuert einen Datenflusstask erstellen und Spalten für die Komponenten in der Aufgabe auswählen. Stattdessen sollte die SetUsageType Methode der Entwurfszeitinstanz der Komponente aufgerufen werden. Durch das direkte Aufrufen dieser Methode wird die Möglichkeit der Komponente umgangen, Spalten nach Datentyp oder Verwendungstyp einzuschränken.