zoukankan      html  css  js  c++  java
  • SSIS的控制流之Foreach循环容器和序列容器

    上一篇介绍了For循环容器的使用。本篇将介绍Foreach循环容器和序列容器的使用。

    Foreach循环容器

    Foreach循环容器定义包中的控制流。其循环的实现类似于编程语言中的Foreach循环结构。SQL Service Integration Services为Foreach容器提供了一下几种枚举类型

    枚举器

    配置要求

    Foreach ADO

    指定 ADO 对象源变量和枚举器模式。

    Foreach ADO.NET 架构行集

    指定与数据库的连接和要枚举的架构。

    Foreach 文件

    指定要枚举的文件夹和文件、检索到的文件的文件名格式,以及是否要遍历子文件夹。

    Foreach 源变量

    指定包含要枚举的对象的变量。

    Foreach 项

    定义 Foreach 项集合中的项,包括列和列数据类型。

    Foreach Nodelist

    指定 XML 文档的源并配置 XPath 操作。

    Foreach SMO

    指定与数据库的连接以及要枚举的 SMO 对象。

    下面看看具体如何使用该控件。假如我们在D:SampleData含有如下文件:

    现在我们用Foreach容器遍历这些文件。

    >创建一个名为”ForeachContainerDemo”的包。然后定义一个变量FileName,类型设置为String。

    >按如下图拖放控件

    >右击”遍历货币”单击编辑。按如下图配置信息

    其中 文件属性中设置".txt"表示 读取指定目录下的所有txt文件。然改为a.txt表示读取目录下指定的文件。

    >单击变量映射选项,配置如下:

    该配置表示,每次遍历的文件名赋值给变量FileName.然后点击确定。至此Foreach容器配置完毕。

    >配置脚本任务和上一篇配置相同。只是做如下改动即可。修改 ReadOnlyVariables属性值为“User::FileName”,并在Main函数中写下如下代码。

      string fileName = Dts.Variables["FileName"].Value.ToString();

       MessageBox.Show(fileName);

    >执行包。将遍历所以文本文件。结束后的效果如下:


    序列容器

    序列容器是一种十分简单,但使用非常广泛的容器,它可以对控制流的任务流组件进行结构化处理,把一些业务相关的任务组件,放到一个序列容器中,使整个包看起来更加整洁、美观,就如同我们家里的书柜、衣柜似的,把不同种类的东西整理在里面,收藏起来,既美观,又易于取用。它是将一个或多个控件作为一个工作单元来处理。例如:

    在图中名为“Prepare New DataBase”的序列容器包含三个执行Sql任务的控件。是将这三个控件组合成一个控件。只有三个控件都执行成功后,才能继续执行下面的流程。序列容器的作用就是这些。不需要配置,也不要编写代码。只要将控件拖放到序列容器即可。有点类似我们C# 中用户控件一样。

    到此本篇的内容就结束。主要是介绍For容器控件的使用。顺便介绍一下序列容器控件。

  • 相关阅读:
    HDU 1058 Humble Numbers
    HDU 1421 搬寝室
    HDU 1176 免费馅饼
    七种排序算法的实现和总结
    算法纲要
    UVa401 回文词
    UVa 10361 Automatic Poetry
    UVa 537 Artificial Intelligence?
    UVa 409 Excuses, Excuses!
    UVa 10878 Decode the tape
  • 原文地址:https://www.cnblogs.com/sthinker/p/5915413.html
Copyright © 2011-2022 走看看