외부 메타데이터 구현Implementing External Metadata

구성 요소와 해당 데이터 원본의 연결이 끊어진 경우 IDTSExternalMetadataColumnCollection100 인터페이스를 사용하여 외부 데이터 원본의 열을 기준으로 입력 및 출력 열 컬렉션의 열에 대한 유효성을 검사할 수 있습니다.When a component is disconnected from its data source, you can validate the columns in the input and output column collections against the columns at its external data source by using the IDTSExternalMetadataColumnCollection100 interface. 이 인터페이스를 사용하면 외부 데이터 원본에 있는 열의 스냅숏을 유지 관리하고 이러한 열을 구성 요소의 입력 및 출력 열 컬렉션에 있는 열에 매핑할 수 있습니다.This interface lets you maintain a snapshot of the columns at the external data source and map these columns to the columns in the input and output column collection of the component.

외부 메타데이터 열을 구현하면 추가 열 컬렉션에 대한 유지 관리 및 유효성 검사를 수행해야 하므로 구성 요소 개발의 오버헤드와 복잡성이 늘어나지만 유효성 검사를 위한 고비용의 서버 왕복을 피할 수 있으면 이 개발 작업을 성공적으로 수행할 수 있습니다.Implementing external metadata columns adds a layer of overhead and complexity to component development, because you must maintain and validate against an additional column collection, but the ability to avoid expensive round trips to the server for validation may make this development work worthwhile.

외부 메타데이터 열 채우기Populating External Metadata Columns

외부 메타데이터 열은 일반적으로 해당하는 입력 또는 출력 열이 만들어질 때 컬렉션에 추가됩니다.External metadata columns are typically added to the collection when the corresponding input or output column is created. 새 열은 New 메서드 호출을 통해 만들어집니다.New columns are created by calling the New method. 그런 다음 열의 속성이 외부 데이터 원본과 일치하도록 설정됩니다.The properties of the column are then set to match the external data source.

외부 메타데이터 열을 해당하는 입력 또는 출력 열에 매핑하려면 해당 입력 또는 출력 열의 ExternalMetadataColumnID 속성에 외부 메타데이터 열의 ID를 할당합니다.The external metadata column is mapped to the corresponding input or output column by assigning the ID of the external metadata column to the ExternalMetadataColumnID property of the input or output column. 이렇게 하면 컬렉션의 GetObjectByID 메서드를 사용하여 특정 입력 또는 출력 열에 대한 외부 메타데이터 열을 쉽게 찾을 수 있습니다.This lets you locate the external metadata column easily for a specific input or output column by using the GetObjectByID method of the collection.

다음 예에서는 외부 메타데이터 열을 만든 다음 ExternalMetadataColumnID 속성을 설정하여 이 열을 외부 열에 매핑하는 방법을 보여 줍니다.The following example shows how to create an external metadata column and then map the column to an output column by setting the ExternalMetadataColumnID property.

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  

외부 메타데이터 열을 사용하여 유효성 검사Validating with External Metadata Columns

유효성 검사를 수행할 때는 추가 열 컬렉션을 기준으로 해야 하므로 외부 메타데이터 열 컬렉션을 유지 관리하는 구성 요소에 대한 추가 단계가 필요합니다.Validation requires additional steps for components that maintain an external metadata column collection, because you must validate against an additional collection of columns. 유효성 검사는 연결 시 유효성 검사와 연결 해제 시 유효성 검사로 나눌 수 있습니다.Validation can be divided into connected validation or disconnected validation.

연결 시 유효성 검사Connected Validation

구성 요소가 외부 데이터 원본에 연결되어 있는 경우 입력 또는 출력 컬렉션의 열은 외부 데이터 원본을 기준으로 직접 유효성이 검사됩니다.When a component is connected to an external data source, the columns in the input or output collections are verified directly against the external data source. 외부 메타데이터 컬렉션의 열에 대한 유효성 검사도 수행해야 합니다.Additionally, the columns in the external metadata collection must be validated. 외부 메타 데이터 컬렉션을 사용 하 여 수정할 수 때문에 이것이 필요는 고급 편집기SQL Server Data Tools(SSDT)SQL Server Data Tools (SSDT), 되며 컬렉션을 변경 하는 변경 내용을 감지할 수 없습니다.This is required because the external metadata collection can be modified by using the Advanced Editor in SQL Server Data Tools(SSDT)SQL Server Data Tools (SSDT), and changes made to the collection are not detectable. 따라서 연결된 상태일 때 구성 요소에서는 외부 메타데이터 열 컬렉션의 열이 계속해서 외부 데이터 원본의 열을 반영하는지 확인해야 합니다.Therefore, when connected, components must make sure that the columns in the external metadata column collection continue to reflect the columns at the external data source.

외부 메타 데이터 컬렉션을 숨길 수 있습니다는 고급 편집기 설정 하 여는 IsUsed 속성 컬렉션의 false합니다.You may choose to hide the external metadata collection in the Advanced Editor by setting the IsUsed property of the collection to false. 그러나이 숨겨집니다는 열 매핑 사용자가 입력 또는 출력 컬렉션에서 열을 외부 메타 데이터 열 컬렉션에서 열에 매핑할 수 있는 편집기의 탭 합니다.However this also hides the Column Mapping tab of the editor, which lets users map columns from the input or output collection to the columns in the external metadata column collection. 이 속성을 설정 false 때도 개발자가 프로그래밍 방식으로 컬렉션을 수정할 수 없도록 하지만 에서만 사용 되는 구성 요소의 외부 메타 데이터 열 컬렉션에 대 한 보호 수준을 제공지 않습니다 SQL Server Data Tools(SSDT)SQL Server Data Tools (SSDT)합니다.Setting this property to false does not prevent developers from programmatically modifying the collection, but it does provide a level of protection for the external metadata column collection of a component that is used exclusively in SQL Server Data Tools(SSDT)SQL Server Data Tools (SSDT).

연결 해제 시 유효성 검사Disconnected Validation

구성 요소가 외부 데이터 원본에 연결되어 있지 않은 경우 입력 또는 출력 컬렉션의 열은 외부 원본이 아니라 외부 메타데이터 컬렉션의 열을 기준으로 유효성이 검사되므로 유효성 검사 과정이 간단해집니다.When a component is disconnected from an external data source, validation is simplified because the columns in the input or output collection are verified directly against the columns in the external metadata collection and not against the external source. 구성 요소 연결 되지 않은 유효성 검사를 수행 하거나 해당 외부 데이터 원본에 대 한 연결 설정 되지 않았습니다 때는 ValidateExternalMetadata 속성은 false합니다.A component should perform disconnected validation when the connection to its external data source has not been established, or when the ValidateExternalMetadata property is false.

다음 코드 예에서는 외부 메타데이터 열 컬렉션을 기준으로 유효성 검사를 수행하는 구성 요소의 구현을 보여 줍니다.The following code example demonstrates an implementation of a component that performs validation against its external metadata column collection.

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  

관련 항목:See Also

데이터 흐름Data Flow