sql2005|记录集
SQL2005-深入了解SSIS中记录集的应用
在本文,我将介绍如何产生记录集,并将利用记录集中的行和列干某些事情,比如当你想基于行遍历执行某项操作,这是非常有用的
产生记录集非常简单了,上文《SSIS中ExecuteSQL TASK组件》中就介绍了
好了,现在开始我们的准备工作
1、现在我们定义4个变量
ClosureDate 日期型数据 ,初始值为1/12/1999
Contactname 字符串型
emailaddress 字符串型
rsDetails 对象型
这4个变量前面3个将用于跟记录集的列建立联系,而后面一个则用于保存记录集
显示结果如图:
2、建立连接
在这个任务包中,我们将建立2个连接,一个用于获得数据的连接,一个是用于发送邮件的连接
建立连接的过程非常简单,下面这图通过点击 【New OLE DB Connection】 呈现
建立SMTP连接可以通过点击 【New Connection】,然后选择SMTP 呈现
3、数据流任务
我们要想把数据填充到变量中,首先我们要先把数据提取出来
当然,这是很简单的事情,在数据流任务面板拖曳上下面2个组件
OLE DB Source组件
Recordset Destination组件
然后设置OLE DB Source组件的连接信息和数据信息,如图:
然后把OLE DB Source组件和 Recordset Destination组件连接起来,设置Recordset Destination组件的属性
当然,我们想把记录保存在变量中,可以通过设置Recordset Destination组件的属性即可
如图,我们把从OLE DB Source组件流出的数据保存在了rsDetails变量中
好了,完成上面的设置后我们的数据流任务面板看起来就像这样
4、拆分记录集
到现在为止,记录集还是一个总体,下面的任务就是能把这个整体分解成多个个体(行)
这就要用这个伟大的 【ForEach Container 】组件实现了
这个组件允许我们遍历集合,当然遍历的方法有很多种,可以权当为枚举器吧,比如【ADO Enumerator】,就是专门用于遍历ADO记录集的,枚举出来的值就直接通过变量映射来实现了
好了,把这个组件拖上来,设置一下它的属性,如图,设置【ForEach Container 】组件的数据来源和枚举类型
把枚举出来的东西建立变量映射关系
5、发送邮件
现在记录集当被拆分成单个单个的行了,且他们的值都被保存在变量中了,要想访问这些值并把它们当作邮件的相关信息,就必须用【Send Mail task 】 组件了
需要注意的是,你必须把这个组件拖到【ForEach Container 】组件中去,不然就行不成父子关系了
下面就要设置邮件组件的信息了
首先当然是设置谁谁谁发过来的,邮件是不是特快邮件等一系列邮件的基本通用信息,如图
然后下面这些信息当然要动态设置了
收件人
主题
内容
由于需要动态设置,这就需要设置 expressions 属性的值来实现了,基本上每一个组件都有这个属性用于动态设置组件的属性
比如,动态设置邮件组件的【Message Source】属性,如图
可以发现非常方便,把你所需要参考的东西都列出来了,体贴入微啊 ,真是微软
主题、收件人依此类推,如图
最后,邮件组件表达式的显示界面如下:
好了,整个任务大功告成,如图
总结
好了,就写到此了,希望你能够喜欢
该文的英文来源于 http://www.sqlis.com/default.aspx?59