上一篇介绍了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容器控件的使用。顺便介绍一下序列容器控件。

SSIS的控制流之Foreach循环容器和序列容器的更多相关文章

  1. SSIS的控制流之For循环容器

    SSIS包由一个控制流以及一个或多个数据流(可选)组成.下面的关系图显示具有一个容器和六项任务的控制流. 这些任务中有五项定义于包级别,还有一项定义于容器级别.任务位于容器内.在控制流中的工具箱.我们 ...

  2. ForEach遍历集合、 集合容器

    ForEach遍历集合 foreach循环是一种更加简洁的for循环,也称增强for循环,能用于遍历数组或集合中的元素. 格式: for(容器元素类型 临时变量:容器变量){ 执行语句} 从上面格式可 ...

  3. SSIS之Foreach循环容器用法

    要实现的业务:A数据库服务器上某库的T_GOODS_DECL的状态字段“Is_Delete”标记为“1”的时候删除B数据库服务器上对应库的T_GOODS_DECL表中的记录,二者的主键为“DECL_N ...

  4. SSIS从理论到实战,再到应用(5)----流程控制之Foreach循环

    原文:SSIS从理论到实战,再到应用(5)----流程控制之Foreach循环 上期回顾: SSIS从理论到实战,再到应用(4)----流程控制之For循环 上一期讲了For循环,Foreach循环相 ...

  5. 使用for循环还是foreach循环?

    很多时候我们很自然的认为,for循环的时候使用foreach和原来的for循环用下标的方式遍历是相同的. 而且因为foreach循环写法简单,很容易理解,而且少去了很多麻烦的变量,所以估计在学会使用f ...

  6. 为什么阿里巴巴禁止在 foreach 循环里进行元素的 remove/add 操作--java.util.ConcurrentModificationException

    摘要 foreach循环(Foreach loop)是计算机编程语言中的一种控制流程语句,通常用来循环遍历数组或集合中的元素. 在阿里巴巴Java开发手册中,有这样一条规定: 但是手册中并没有给出具体 ...

  7. 为什么禁止在 foreach 循环里进行元素的 remove/add 操作

    首先看下边一个例子,展示了正确的做法和错误的错发: 这是为什么呢,具体原因下面进行详细说明: 1.foreach循环(Foreach loop)是计算机编程语言中的一种控制流程语句,通常用来循环遍历数 ...

  8. Effective Java 第三版——58. for-each循环优于传统for循环

    Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...

  9. 程序控制结构及for循环、foreach循环、迭代器

    结构化程序设计 三种基本控制结构:顺序结构.选择结构.循环结构. 在这种思想的指导下,发展出了面向过程编程方式.面向过程编程的核心是算法+数据结构.算法可以用顺序.选择.循环这三种基本控制结构来实现. ...

随机推荐

  1. JavaScript数据结构与算法-数组练习

    一. 创建一个记录学生成绩的对象,提供一个添加成绩的方法,以及一个显示学生平均成绩的方法. // 创建一个记录学生成绩的对象 const Students = function Students () ...

  2. fecha的使用

    项目中时间的处理是无法避免的,时间的处理方式有很多,这里介绍一下fecha的使用 fecha是一个日期格式化和解析的js库,它提供了强大的日期处理功能,功能强大且只有2k大小.安装方式简单,只需要 n ...

  3. 我的Java开发学习之旅------>Eclipse 项目有红感叹号解决之道

    今天一个读者问我关于Android通过调用Webservice实现天气预报这篇文章的源码下载后出现的错误 Could not find class 'org.ksoap2.transport.Http ...

  4. 002-JVM运行时数据区【内存模型】

    一.概述 JVM定义了不同运行时数据区,他们是用来执行应用程序的.某些区域随着JVM启动及销毁,另外一些区域的数据是线程性独立的,随着线程创建和销毁. 1.1.jvm自身物理结构 1.2.java内存 ...

  5. 007-sql整体概述

    一.概述 sql基础:数据库.数据表.行.列.关系 查询: Select 字段1,字段2,* from 表 where 条件 去除重复:Distinct 必须放在所有列前面 区间语句:BETWEEN ...

  6. Java 如何读取resources

    Sample in Github 1.一般使用Maven创建Java工程,代码文件在src/main/java文件夹中,资源文件在src/main/resources文件夹中,Java代码为什么可以读 ...

  7. request doesn't contain a multipart/form-data or multipart/mixed stream ……

    有文件控件"file"的表单,在提交的时候,直接使用了ajax提交,结果报了一堆错,原来这个东东要提交表单,还要用post方式,最后更改为: $("#saveForm&q ...

  8. Js onload 解析

    Js onload的使用方法. 1.在script中调用 window.onload = function(){ function1(); function2(); function3(); }; 或 ...

  9. php的异常和处理

    常见错误处理类型 语法错误 环境错误 逻辑错误 常见错误级别 Deprecated 最低级别的错误 不推荐,不建议,使用一些过期函数的时候会出现,程序继续执行 Notice 通知级别的错误 使用一些未 ...

  10. iOS 学习如何声明私有变量和私有方法

    私有变量 首先来说 OC 中没有绝对的私有变量,这么说基于两点原因: 1可修改:   通过KVC  键值编码 来修改私有成员变量的值 2可读取 :  通过底层runtime 获取实例变量Ivar 对应 ...