IDTSVirtualInput100.SetUsageType(Int32, DTSUsageType) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Сопоставляет объект виртуального входного столбца и задает тип его использования.
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
Параметры
- lLineageID
- Int32
Идентификатор LineageID сопоставляемого столбца IDTSVirtualInputColumn100.
- eUsageType
- DTSUsageType
Значение из перечисления DTSUsageType, указывающее, как входной столбец используется компонентом.
Возвращаемое значение
Индекс вновь созданного объекта IDTSInputColumn100 или -1, если eUsageType
равен UT_IGNORED, а столбец удален из коллекции входных столбцов.
- Атрибуты
Примеры
В следующем примере кода показана переопределенная реализация SetUsageType компонента, использующая виртуальные входные данные SetUsageType для добавления и удаления столбцов из коллекции входных данных. В этом примере компонент не позволяет записывать столбцы, поэтому при 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
Комментарии
Разработчики пользовательских компонентов вызывают этот метод, обычно в переопределенной реализации метода базового класса SetUsageType , чтобы добавить или удалить столбцы из коллекции входных столбцов компонента. Если eUsageType
значение UT_IGNOREDравно , а столбец ранее был добавлен в коллекцию входных столбцов компонента, индекс столбца удаляется. Если eUsageType
значение равно UT_READONLYили UT_READWRITEстолбец добавляется в коллекцию.
Этот метод не должен вызываться разработчиками, которые программно создают задачу потока данных и выбирают столбцы для компонентов задачи. Вместо этого SetUsageType следует вызвать метод экземпляра компонента во время разработки. Вызов этого метода напрямую обходит возможность компонента ограничить столбцы по типу данных или типу использования.