【发布时间】:2014-03-30 17:06:29
【问题描述】:
我试图从我的脚本组件转换为 SSIS 的 PipelineBuffer 中获取列名和索引,并将它们添加到哈希表中。我知道如果我将课程从:public class ScriptMain : UserComponent 更改为 ScriptMain : PipelineComponent 并使用此代码,这是可能的:
public override void ProcessInput(int InputID, Microsoft.SqlServer.Dts.Pipeline.PipelineBuffer Buffer)
{
inputBuffer = Buffer;
hash = new Hashtable();
IDTSInput100 i = ComponentMetaData.InputCollection.GetObjectByID(InputID);
foreach (IDTSInputColumn100 col in i.InputColumnCollection)
{
int colIndex = BufferManager.FindColumnByLineageID(i.Buffer, col.LineageID);
hash.Add(col.Name, colIndex);
}
}
但是;当我这样做时,我不能再覆盖:public override void Input0_ProcessInputRow(Input0Buffer Row) 因为这在 PipelineComponent 类中不可用,我不能再通过简单地调用这样的东西来访问我的连接管理器:IDTSConnectionManager100 connMgr = this.Connections.DbConnection; 从我可以看到 BufferManager 不是在 UserComponent 类中可用。有没有办法使用 UserComponent 来实现这一点?
【问题讨论】:
标签: c# ssis script-component