了解SSIS的“完整结果集”

时间:2013-11-12 18:04:18

标签: c# ssis

我有两个关于执行SQL任务生成的结果集的问题 -

1)存储结果集的对象的类是什么?它是ADODB记录集吗? 2)无论是什么对象,如何迭代该对象。我想简单地迭代它以网格形式打印它,就像它出现在SQL服务器管理工​​作室中一样。我想这样做而不将它放入DataTable对象或类似的东西。这将浪费记忆和时间。

有人可以告诉我该怎么做吗?

2 个答案:

答案 0 :(得分:2)

1)结果集在技术上存储在OLEDB Rowset对象中,该对象可以放入ADORecordConstruction对象并转换为ADO RecordSet。每当您实际访问对象的数据时,SSIS都会隐式执行此操作。

没有脚本,在SSIS执行中看到这些数据的唯一方法是使用Foreach循环容器。

  1. 将Foreach循环枚举器设置为Foreach ADO枚举器。
  2. 为结果集中的每一列指定一个变量。
  3. 在循环中使用这些变量,使用事件处理程序在执行日志中显示它们。
  4. 话虽这么说,如果你真的想要查看对象的数据,我高度建议创建数据流,将对象转换为脚本源,并将数据查看器附加到它以查看网格形式的数据。

    最后,我建议如果您只是尝试调试和查看SQL任务返回的数据集,则脚本任务可以执行查询并将其结果快速推送到(例如)本地文件中。

答案 1 :(得分:0)

另一种方法是使用ADO.NET连接而不是OLEDB。如果使用ADO.NET连接,则会获得ADO.NET DataSet对象。 DataSet是DataTable的集合。

DataSet教程的一些链接 -

http://www.dotnetperls.com/dataset

斯科特米切尔的啧啧 -

http://msdn.microsoft.com/en-us/library/aa581776.aspx