Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server
SSIS Integration Runtime em Azure Data Factory
Quando um componente está desligado da sua fonte de dados, pode validar as colunas nas coleções de colunas de entrada e saída contra as colunas da sua fonte de dados externa usando a IDTSExternalMetadataColumnCollection100 interface. Esta interface permite-lhe manter um instantâneo das colunas na fonte de dados externa e mapear essas colunas para as colunas da coleção de colunas de entrada e saída do componente.
Implementar colunas externas de metadados adiciona uma camada de sobrecarga e complexidade ao desenvolvimento de componentes, porque é necessário manter e validar contra uma coleção adicional de colunas, mas a capacidade de evitar viagens dispendiosas de ida e volta ao servidor para validação pode tornar este trabalho de desenvolvimento valioso.
Preenchimento das Colunas de Metadados Externas
Colunas externas de metadados são normalmente adicionadas à coleção quando a correspondente coluna de entrada ou saída é criada. Novas colunas são criadas ao chamar o New método. As propriedades da coluna são então definidas para corresponder à fonte de dados externa.
A coluna externa de metadados é mapeada para a correspondente coluna de entrada ou saída, atribuindo o ID da coluna externa de metadados à ExternalMetadataColumnID propriedade da coluna de entrada ou saída. Isto permite-lhe localizar facilmente a coluna externa de metadados para uma coluna de entrada ou saída específica, utilizando o GetObjectByID método da coleção.
O exemplo seguinte mostra como criar uma coluna de metadados externa e depois mapear a coluna para uma coluna de saída, definindo a ExternalMetadataColumnID propriedade.
public void CreateExternalMetaDataColumn(IDTSOutput100 output, int outputColumnID )
{
IDTSOutputColumn100 oColumn = output.OutputColumnCollection.GetObjectByID(outputColumnID);
IDTSExternalMetadataColumn100 eColumn = output.ExternalMetadataColumnCollection.New();
eColumn.DataType = oColumn.DataType;
eColumn.Precision = oColumn.Precision;
eColumn.Scale = oColumn.Scale;
eColumn.Length = oColumn.Length;
eColumn.CodePage = oColumn.CodePage;
oColumn.ExternalMetadataColumnID = eColumn.ID;
}
Public Sub CreateExternalMetaDataColumn(ByVal output As IDTSOutput100, ByVal outputColumnID As Integer)
Dim oColumn As IDTSOutputColumn100 = output.OutputColumnCollection.GetObjectByID(outputColumnID)
Dim eColumn As IDTSExternalMetadataColumn100 = output.ExternalMetadataColumnCollection.New
eColumn.DataType = oColumn.DataType
eColumn.Precision = oColumn.Precision
eColumn.Scale = oColumn.Scale
eColumn.Length = oColumn.Length
eColumn.CodePage = oColumn.CodePage
oColumn.ExternalMetadataColumnID = eColumn.ID
End Sub
Validação com Colunas de Metadados Externas
A validação requer passos adicionais para componentes que mantêm uma coleção externa de colunas de metadados, porque deve validar contra uma coleção adicional de colunas. A validação pode ser dividida em validação ligada ou validação desconectada.
Validação Conectada
Quando um componente está ligado a uma fonte de dados externa, as colunas nas coleções de entrada ou saída são verificadas diretamente contra a fonte de dados externa. Adicionalmente, as colunas na recolha externa de metadados devem ser validadas. Isto é necessário porque a recolha externa de metadados pode ser modificada usando o Editor Avançado no SQL Server Data Tools (SSDT), e as alterações feitas à coleção não são detetáveis. Portanto, quando ligados, os componentes devem garantir que as colunas na coluna externa de metadados continuam a refletir as colunas da fonte de dados externa.
Pode optar por ocultar a coleção externa de metadados no Editor Avançado definindo a IsUsed propriedade da coleção como false. No entanto, isto também oculta o separador Column Mapping do editor, que permite aos utilizadores mapear colunas da coleção de entrada ou saída para as colunas da coluna externa de metadados. Definir esta propriedade como falsa não impede os programadores de modificar programaticamente a coleção, mas fornece um nível de proteção para a recolha externa de colunas de metadados de um componente que é usado exclusivamente no SQL Server Data Tools (SSDT).
Validação Desconectada
Quando um componente é desligado de uma fonte de dados externa, a validação é simplificada porque as colunas na coleção de entrada ou saída são verificadas diretamente contra as colunas da coleção externa de metadados e não contra a fonte externa. Um componente deve realizar uma validação desconectada quando a ligação à sua fonte de dados externa ainda não foi estabelecida, ou quando a ValidateExternalMetadata propriedade é falsa.
O exemplo de código seguinte demonstra uma implementação de um componente que realiza validação contra a sua coleção externa de colunas de metadados.
public override DTSValidationStatus Validate()
{
if( this.isConnected && ComponentMetaData.ValidateExternalMetaData )
{
// TODO: Perform connected validation.
}
else
{
// TODO: Perform disconnected validation.
}
}
Public Overrides Function Validate() As DTSValidationStatus
If Me.isConnected AndAlso ComponentMetaData.ValidateExternalMetaData Then
' TODO: Perform connected validation.
Else
' TODO: Perform disconnected validation.
End If
End Function