Jazyk
Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
SSIS Integration Runtime v rámci Azure Data Factory
Když je komponenta odpojena od svého datového zdroje, můžete ověřit sloupce ve vstupních a výstupních kolekcích sloupců vůči sloupcům u externího zdroje IDTSExternalMetadataColumnCollection100 pomocí rozhraní. Toto rozhraní vám umožňuje udržovat snímek sloupců u externího datového zdroje a mapovat tyto sloupce na sloupce ve vstupní a výstupní kolekci kolony komponenty.
Implementace externích sloupců metadat přidává další vrstvu režijních nákladů a složitosti do vývoje komponent, protože musíte udržovat a ověřovat proti další kolekci sloupců, ale možnost vyhnout se nákladným okolním cestám na server pro ověření může tento vývoj učinit užitečným.
Vyplnění sloupců s externími metadaty
Externí sloupce metadat jsou obvykle přidávány do sbírky při vytvoření příslušného vstupního nebo výstupního sloupce. Nové sloupce se vytvářejí voláním metody New . Vlastnosti sloupce jsou pak nastaveny tak, aby odpovídaly externímu datovému zdroji.
Sloupec externích metadat je přiřazen k odpovídajícímu vstupnímu nebo výstupnímu sloupci přiřazením ID sloupce ExternalMetadataColumnID externích metadat vlastnosti vstupního nebo výstupního sloupce. To vám umožní snadno najít sloupec externích metadat pro konkrétní vstupní nebo výstupní sloupec pomocí GetObjectByID metody kolekce.
Následující příklad ukazuje, jak vytvořit sloupec externích metadat a poté namapovat sloupec na výstupní sloupec nastavením ExternalMetadataColumnID vlastnosti.
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
Ověřování pomocí sloupců s externími metadaty
Validace vyžaduje další kroky pro komponenty, které udržují externí sbírku sloupců metadat, protože musíte validovat proti další kolekci sloupců. Validace může být rozdělena na propojenou validaci nebo nepropojenou validaci.
Propojená validace
Když je komponenta připojena k externímu datovému zdroji, sloupce ve vstupních nebo výstupních kolekcích jsou ověřeny přímo vůči externímu datovému zdroji. Navíc je nutné ověřit sloupce v externí sběru metadat. To je nutné, protože sběr externích metadat lze upravit pomocí Rozšířený editor v SQL Server Data Tools (SSDT) a změny provedené ve sbírce nejsou detekovatelné. Proto při připojení musí komponenty zajistit, aby sloupce v externí sbírce sloupců metadat nadále odrážely sloupce u externího datového zdroje.
Můžete se rozhodnout skrýt externí sběr metadat v Rozšířený editor nastavením vlastnosti kolekce na IsUsedfalse. To však také skrývá záložku Mapování sloupců editoru, která umožňuje uživatelům mapovat sloupce ze vstupní nebo výstupní kolekce na sloupce v externí kolekci sloupců metadat. Nastavení této vlastnosti na false nebrání vývojářům programově upravovat kolekci, ale poskytuje určitou úroveň ochrany pro sběr externích metadat v rámci komponenty, která je výhradně používána v SQL Server Data Tools (SSDT).
Ověření oddělení
Když je komponenta odpojena od externího zdroje dat, validace je zjednodušena, protože sloupce ve vstupní nebo výstupní kolekci jsou ověřovány přímo vůči sloupcům v externí kolekci metadat, nikoli vůči externímu zdroji. Komponenta by měla provádět odpojenou validaci, pokud spojení s externím datovým zdrojem nebylo navázáno nebo pokud je vlastnost ValidateExternalMetadatanepravdivá.
Následující příklad kódu demonstruje implementaci komponenty, která provádí validaci proti své externí sběratelské kolekci metadatových sloupců.
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