如何将数据集对象存储到数据类型的包变量中Object
并将其从脚本任务中分配回另一个数据集对象?
这是我之前的答案中的代码示例。它展示了如何在脚本任务中从对象变量填充 OleDB 数据适配器。您可以使用数据流任务中的记录集目标将记录集存储到对象变量中。
如何访问脚本任务中的记录集变量 https://stackoverflow.com/questions/2596992/ssis-how-to-access-a-recordset-variable-inside-a-script-task/2600317#2600317
为了进一步扩展我在其他答案中在脚本中所做的事情,如果您已经操作了对象变量中的行并且想要将新结果保存到对象变量中以供进一步处理,您可以在过程结束时执行以下操作。Dts.Variables("rsRecipients").Value = dt
其示例位于:从脚本任务更新 Foreach 容器中使用的 SSIS 对象变量 http://www.bigresource.com/MS_SQL-Update-SSIS-object-variable-used-in-Foreach-conainer-from-script-task--aFDXiwfs.html
示例#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
End Sub
线路olead.Fill(dt, Dts.Variables("rsRecipients").Value)
从记录集变量读入。线路Dts.Variables("rsRecipients").Value = dt
将数据集写回变量(在本例中是相同的变量,但是如果您愿意,可以将其写入不同的变量)。将数据集加载到对象变量中的其他方法包括在数据流任务中使用记录集目标,或使用 SQL 任务并通过在对话框中的结果集字段上选择完整结果集将完整结果集设置为变量,然后设置输出转到对象类型的变量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)