如何在同步转换组件中增加输出列
2009-09-19 00:00:00 来源:WEB开发网2. 修改PreExecute方法
List<int> _columns = new List<int>();//这个集合来保存需要处理的列的索引号
int timestampColumnindex;
/// <summary>
/// 这个方法是ProcessInput之前的准备工作。
/// 我们检测所有输入列中类型为字符型的,并将它的索引号记录起来
/// 为了让ProcessInput能使用到这个信息,我们定义一个公用变量
/// </summary>
public override void PreExecute()
{
IDTSInput90 input = ComponentMetaData.InputCollection[0];
IDTSInputColumnCollection90 columns = input.InputColumnCollection;
foreach (IDTSInputColumn90 item in columns)
{
if (item.DataType == DataType.DT_WSTR || item.DataType == DataType.DT_STR)
{
_columns.Add(BufferManager.FindColumnByLineageID(input.Buffer, item.LineageID));
}
}
IDTSOutput90 output = ComponentMetaData.OutputCollection[0];
IDTSOutputColumn90 column = output.OutputColumnCollection[0];
timestampColumnindex = BufferManager.FindColumnByLineageID(input.Buffer, column.LineageID);
//一定要注意,因为是同步输出,所以这里查找仍热是在input.buffer里面找,而不是output.buffer
//也就是说,至于遇到了异步转换,才会另外创建一个buffer,否则是使用同一个buffer
}
更多精彩
赞助商链接