任务 2:添加并配置 Foreach 循环容器
在本任务中,您将添加循环访问平面文件的文件夹的功能,并将第 1 课中使用的同一数据流转换应用于其中的每个平面文件。 实现方法是将 Foreach 循环容器添加到控制流中并进行配置。
所添加的 Foreach 循环容器必须能够连接到该文件夹中的每个平面文件。 由于该文件夹中的所有文件都具有相同的格式,因此,Foreach 循环容器可以使用同一平面文件连接管理器来连接其中的每个文件。 该容器所使用的平面文件连接管理器与您在第 1 课中创建的平面文件连接管理器相同。
目前,第 1 课中的平面文件连接管理器只连接一个特定的平面文件。 若要循环地连接该文件夹中的每个平面文件,必须同时对 Foreach 循环容器和平面文件连接管理器进行如下配置:
Foreach 循环容器 将该容器的枚举值映射为用户定义的包变量。 然后,该容器将使用此用户定义变量来动态修改平面文件连接管理器的 ConnectionString 属性,并循环连接该文件夹中的每个平面文件。
平面文件连接管理器 使用用户定义的变量填充在第 1 课中创建的连接管理器的 ConnectionString 属性,以修改该连接管理器。
本任务中的过程向您显示如何创建和修改 Foreach 循环容器以使用用户定义的包变量,以及如何将数据流任务添加到该循环中。 您将了解改平面文件连接管理器,以便在下一任务中使用用户定义的变量。
在对该包进行这些修改后,当该包运行时,Foreach 循环容器将循环访问示例数据文件夹中的文件集合。 每次找到一个与条件相匹配的文件时,Foreach 循环容器都会用文件名填充用户定义的变量,将用户定义的变量映射到 Sample Currency Data 平面文件连接管理器的 ConnectionString 属性,然后对该文件运行数据流。 因此,在 Foreach 循环的每次迭代中,数据流任务都将使用一个不同的平面文件。
注意 |
---|
由于 Microsoft Integration Services 区分控制流和数据流,因此添加到控制流的任何循环都不需要对数据流进行修改。因此,无需更改在第 1 课中创建的数据流。 |
添加 Foreach 循环容器
在 Business Intelligence Development Studio 中,单击**“控制流”**选项卡。
在**“工具箱”中,展开“控制流项”,然后将“Foreach 循环容器”拖到“控制流”**选项卡的设计图面上。
右键单击新添加的**“Foreach 循环容器”,并选择“编辑”**。
在**“Foreach 循环编辑器”对话框的“常规”页中,为“名称”输入 Foreach File in Folder。 单击“确定”**。
右键单击“Foreach 循环容器”,再单击**“属性”,然后在“属性”窗口,确保已将 LocaleID 属性设置为“英语(美国)”**。
为 Foreach 循环容器配置枚举器
双击文件夹中的 Foreach 文件以重新打开**“Foreach 循环编辑器”**。
单击**“集合”**。
在**“集合”页中,选择“Foreach 文件枚举器”**。
在**“枚举器配置”组中,单击“浏览”**。
在**“浏览文件夹”**对话框中,找到包含教程示例数据的示例数据文件夹。
默认情况下,教程示例数据安装在以下文件夹中:C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Tutorial\Creating a Simple ETL Package\Sample Data。
在**“文件”**框中,键入 Currency_*.txt。
将枚举器映射为用户定义的变量
单击**“变量映射”**。
在**“变量映射”页的“变量”列中,单击空单元格并选择“<新建变量…>”**。
在**“添加变量”对话框中,为“名称”**键入 varFileName。
重要提示 变量名称区分大小写。
单击**“确定”**。
再次单击**“确定”,退出“Foreach 循环编辑器”**对话框。
将数据流任务添加到循环中
- 将 Extract Sample Currency Data 数据流任务拖动到现已重命名为 Foreach File in Folder 的 Foreach 循环容器中。