IDTSVirtualInput100.SetUsageType(Int32, DTSUsageType) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Mapeia um objeto de coluna de entrada virtual e define seu tipo de uso.
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
Parâmetros
- lLineageID
- Int32
O LineageID do IDTSVirtualInputColumn100 que está sendo mapeado.
- eUsageType
- DTSUsageType
Um valor da enumeração DTSUsageType que indica como a coluna de entrada é usada pelo componente.
Retornos
O índice do IDTSInputColumn100 recém-criado ou -1 se eUsageType
for UT_IGNORED e a coluna for removida da coleção de colunas de entrada.
- Atributos
Exemplos
O exemplo de código a seguir mostra a implementação substituída de um componente de SetUsageType que usa a entrada SetUsageType virtual para adicionar e remover colunas da coleção de entrada. Neste exemplo, o componente não permite que colunas sejam graváveis, portanto, quando eUsageType
é UT_READWRITE uma exceção ocorre.
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
Comentários
Os desenvolvedores de componentes personalizados chamam esse método, geralmente em sua implementação substituída do método de classe SetUsageType base, para adicionar ou remover colunas da coleção de colunas de entrada do componente. Se eUsageType
for UT_IGNOREDe a coluna tiver sido adicionada anteriormente à coleção de colunas de entrada do componente, o índice da coluna será removido. Se eUsageType
for UT_READONLY, ou UT_READWRITE, a coluna será adicionada à coleção.
Esse método não deve ser chamado por desenvolvedores que estão criando programaticamente uma tarefa de fluxo de dados e selecionando colunas para os componentes na tarefa. Em vez disso, o SetUsageType método da instância de tempo de design do componente deve ser chamado. Chamar esse método ignora diretamente a capacidade do componente de restringir colunas por tipo de dados ou tipo de uso.