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.
Bildet ein virtuelles Eingabespaltenobjekt ab und legt dessen Nutzungstyp 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
Das LineageID von denen IDTSVirtualInputColumn100 , die kartiert werden.
- eUsageType
- DTSUsageType
Ein Wert aus der DTSUsageType Aufzählung, der angibt, wie die Eingabespalte von der Komponente verwendet wird.
Gibt zurück
Der Index des neu erstellten IDTSInputColumn100, oder -1 , ist eUsageTypeUT_IGNORED und die Spalte wird aus der Eingabespaltensammlung entfernt.
- Attribute
Beispiele
Das folgende Codebeispiel zeigt die überschriebene Implementierung von einer SetUsageType Komponente, die die virtuellen Eingaben verwendet, SetUsageType um Spalten aus der Eingabesammlung hinzuzufügen und zu entfernen. In diesem Beispiel erlaubt die Komponente nicht, dass Spalten beschreibbar sind, sodass eine Ausnahme auftritt, wenn eUsageType .UT_READWRITE
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 verwenden diese Methode, meist in ihrer überschriebenen Implementierung der Basisklassenmethode SetUsageType , um Spalten aus der Eingabespaltensammlung der Komponente hinzuzufügen oder zu entfernen. Ist eUsageTypeUT_IGNORED, und die Spalte wurde zuvor zur Eingabespaltensammlung der Komponente hinzugefügt, wird der Spaltenindex entfernt. Ist eUsageTypeUT_READONLY, oder UT_READWRITE, wird die Spalte zur Sammlung hinzugefügt.
Diese Methode sollte von Entwicklern, die programmatisch eine Datenflussaufgabe erstellen und Spalten für die Komponenten der Aufgabe auswählen, nicht aufgerufen werden. Stattdessen sollte die SetUsageType Methode der Design-Time-Instanz der Komponente aufgerufen werden. Das Aufrufen dieser Methode umgeht direkt die Möglichkeit der Komponente, Spalten nach Datentyp oder Nutzungstyp zu beschränken.