sql2005-深入了解ssis中記錄集的應用
在本文,我將介紹如何產生記錄集,并將利用記錄集中的行和列干某些事情,比如當你想基于行遍歷執(zhí)行某項操作,這是非常有用的
產生記錄集非常簡單了,上文《ssis中executesql task組件》中就介紹了
好了,現(xiàn)在開始我們的準備工作
1、現(xiàn)在我們定義4個變量
closuredate 日期型數據 ,初始值為1/12/1999
contactname 字符串型
emailaddress 字符串型
rsdetails 對象型
這4個變量前面3個將用于跟記錄集的列建立聯(lián)系,而后面一個則用于保存記錄集
顯示結果如圖:

2、建立連接
在這個任務包中,我們將建立2個連接,一個用于獲得數據的連接,一個是用于發(fā)送郵件的連接
建立連接的過程非常簡單,下面這圖通過點擊 【new ole db connection】 呈現(xiàn)

建立smtp連接可以通過點擊 【new connection】,然后選擇smtp 呈現(xiàn)


3、數據流任務
我們要想把數據填充到變量中,首先我們要先把數據提取出來
當然,這是很簡單的事情,在數據流任務面板拖曳上下面2個組件
ole db source組件
recordset destination組件
然后設置ole db source組件的連接信息和數據信息,如圖:

然后把ole db source組件和 recordset destination組件連接起來,設置recordset destination組件的屬性
當然,我們想把記錄保存在變量中,可以通過設置recordset destination組件的屬性即可
如圖,我們把從ole db source組件流出的數據保存在了rsdetails變量中

好了,完成上面的設置后我們的數據流任務面板看起來就像這樣

4、拆分記錄集
到現(xiàn)在為止,記錄集還是一個總體,下面的任務就是能把這個整體分解成多個個體(行)
這就要用這個偉大的 【foreach container 】組件實現(xiàn)了
這個組件允許我們遍歷集合,當然遍歷的方法有很多種,可以權當為枚舉器吧,比如【ado enumerator】,就是專門用于遍歷ado記錄集的,枚舉出來的值就直接通過變量映射來實現(xiàn)了
好了,把這個組件拖上來,設置一下它的屬性,如圖,設置【foreach container 】組件的數據來源和枚舉類型

把枚舉出來的東西建立變量映射關系

5、發(fā)送郵件
現(xiàn)在記錄集當被拆分成單個單個的行了,且他們的值都被保存在變量中了,要想訪問這些值并把它們當作郵件的相關信息,就必須用【send mail task 】 組件了
需要注意的是,你必須把這個組件拖到【foreach container 】組件中去,不然就行不成父子關系了
下面就要設置郵件組件的信息了
首先當然是設置誰誰誰發(fā)過來的,郵件是不是特快郵件等一系列郵件的基本通用信息,如圖

然后下面這些信息當然要動態(tài)設置了
收件人
主題
內容
由于需要動態(tài)設置,這就需要設置 expressions 屬性的值來實現(xiàn)了,基本上每一個組件都有這個屬性用于動態(tài)設置組件的屬性
比如,動態(tài)設置郵件組件的【message source】屬性,如圖

可以發(fā)現(xiàn)非常方便,把你所需要參考的東西都列出來了,體貼入微啊 ,真是微軟
主題、收件人依此類推,如圖


最后,郵件組件表達式的顯示界面如下:

好了,整個任務大功告成,如圖
總結
好了,就寫到此了,希望你能夠喜歡
該文的英文來源于 http://www.sqlis.com/default.aspx?59
新聞熱點
疑難解答