如何在自定义 SSIS 目标组件中映射输入列

问题描述 投票:0回答:1

好吧,我的问题与此非常相似,但答案对我不起作用:如何在自定义 SSIS 组件中创建目标列?

我正在构建一个自定义 SSIS 目标组件,以将一些数据(姓名)上传到我的 Web 服务(假设没有其他现有方法可以做到这一点)。

假设用户正在使用 OLE DB 源读取包含“名字”和“姓氏”列的 SQL 表,并将此源组件连接到我的自定义目标组件。

**如何允许用户将源组件的输出列(本例中的名字和姓氏)映射到我的输入列(姓名和姓氏),以便我可以在 ProcessInput 方法中跟踪它们? **

这是我用来创建外部列的代码,但正如您所看到的,这些列没有显示在映射选项卡中的任何位置。

        public override void ProvideComponentProperties()
        {
            // Reset the component.  
            RemoveAllInputsOutputsAndCustomProperties();
            ComponentMetaData.RuntimeConnectionCollection.RemoveAll();

            IDTSInput100 input = ComponentMetaData.InputCollection.New();
            input.Name = "Input";

            IDTSExternalMetadataColumn100 externalNameColumn = input.ExternalMetadataColumnCollection.New();
            externalNameColumn.Name = "Name";
            externalNameColumn.Description = "The name of the customer";
            
            IDTSExternalMetadataColumn100 externalSurnameColumn = input.ExternalMetadataColumnCollection.New();
            externalSurnameColumn.Name = "Surname";
            externalSurnameColumn.Description = "The surname of the customer";

            IDTSRuntimeConnection100 connection = ComponentMetaData.RuntimeConnectionCollection.New();
            connection.Name = "MyConnectionManager";
        }

c# sql-server ssis
1个回答
0
投票

好吧,我终于解决了,非常简单。

映射应该在数据流中的前一个组件中完成,而不是在目标组件中完成!

只需双击上一个组件(连接到自定义目标组件的组件)并在列映射选项卡中设置您的首选映射。

就这么简单。

© www.soinside.com 2019 - 2024. All rights reserved.