如何将数据集对象存储到数据类型的包变量中Object
,并将其从脚本任务中分配回另一个数据集对象?
这是我之前回答的代码示例.它显示了如何在脚本任务中从对象变量填充OleDB数据适配器.您可以使用数据流任务中的记录集目标将记录集存储到对象变量中.
如何在脚本任务中访问Recordset变量
为了进一步扩展我在脚本中从我的其他答案中所做的操作,如果您操纵了对象变量中的行并希望将新结果保存到对象变量中以进行进一步处理,则可以在过程结束时执行以下操作. Dts.Variables("rsRecipients").Value = dt
这方面的一个示例位于:更新SSIS对象变量用于Foreach Conainer
来自示例#2的脚本任务代码:
Public Sub Main() Dim Header As String Dim Body As String Dim Footer As String Header = "blah" Footer = "blah" Try Dim olead As New Data.OleDb.OleDbDataAdapter Dim dt As New Data.DataTable olead.Fill(dt, Dts.Variables("rsRecipients").Value) For Each row As Data.DataRow In dt.Rows If UCase(Trim(row("EmployeeCode").ToString())) = UCase(Trim(Dts.Variables("colEmployeeCode").Value.ToString())) Then Body = Body + "Label: " + Trim(row("colum").ToString()) + System.Environment.NewLine row.Delete() End If Next Dts.Variables("rsRecipients").Value = dt Dts.Variables("EmailMessage").Value = Header + Body + Footer Dts.TaskResult = Dts.Results.Success Catch ex As Exception Dts.TaskResult = Dts.Results.Failure End Try
结束子
该行olead.Fill(dt, Dts.Variables("rsRecipients").Value)
从记录集变量读入.该行将Dts.Variables("rsRecipients").Value = dt
数据集写回一个变量(在这种情况下是同一个变量,但如果您愿意,可以将其写入另一个变量).将数据集加载到对象变量的其他方法包括在数据流任务中使用记录集目标,或使用sql任务并通过在对话框中的结果集字段上选择完整结果集将完整结果集设置为变量,然后设置输出转到object类型的变量.