为SSIS编写自定义数据流组件(DataFlow Component)之进阶篇:数据源组件
2009-09-19 00:00:00 来源:WEB开发网上一篇,我们讲到了一个简单的步骤,包括创建项目,部署和测试。这一节,首先来探讨一下数据源组件的设计
1. 添加几个引用。请确保添加了下图所示的四个引用,以及添加了相应的using语句
图片看不清楚?请点击这里查看原图(大图)。
【注意】为了更好地表达我的目的,我已经修改了该组件的名字。它现在是一个“文件夹数据源”,目的是用来读取一个文件夹的文件信息。想想看,你是不是正好有这样的需求呢
2. 添加输出列的定义
作为一个数据源,很显然,它需要定义到底输出哪些列。那么这个是在哪里定义的呢? 我们需要做的是重写ProvideComponentProperties方法
public override void ProvideComponentProperties()
{
ComponentMetaData.RuntimeConnectionCollection.RemoveAll();
RemoveAllInputsOutputsAndCustomProperties();
IDTSCustomProperty90 folder = ComponentMetaData.CustomPropertyCollection.New();
folder.Name = "Folder";//怎么样设置该属性让他可以绑定表达式?
IDTSOutput90 output = ComponentMetaData.OutputCollection.New();
output.Name = "MyOutput";
//初始化的时候,准备几个输出列
IDTSOutputColumn90 fileNameColumn = output.OutputColumnCollection.New();
fileNameColumn.Name = "FileName";
fileNameColumn.SetDataTypeProperties(DataType.DT_WSTR, 256, 0, 0, 0);
//如果是非Unicode则要提供CodePage,其他的类型可以设置为0
IDTSOutputColumn90 fileSizeColumn = output.OutputColumnCollection.New();
fileSizeColumn.Name = "FileSize";
fileSizeColumn.SetDataTypeProperties(DataType.DT_I8, 0, 0, 0, 0);
IDTSOutputColumn90 fileExtensionColumn = output.OutputColumnCollection.New();
fileExtensionColumn.Name = "FileExtension";
fileExtensionColumn.SetDataTypeProperties(DataType.DT_WSTR, 50, 0, 0, 0);
//怎么让用户无法编辑这个输出和列的信息呢?
}
更多精彩
赞助商链接