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容器控件的使用。順便介紹一下序列容器控件。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM