关于执行 SQL 任务生成的结果集,我有两个问题 -
1) 存储结果集的对象的类是什么?它是 ADODB 记录集吗?2)无论它是什么对象,如何迭代该对象。我想简单地迭代它并以网格形式打印它,就像它出现在 SQL Server Management Studio 中一样。我想这样做而不将其放入 DataTable 对象或类似的东西中。那会浪费内存和时间。
有人可以告诉我怎么做吗?
1) 结果集在技术上存储在一个OLEDB Rowset 对象中,可以将其放入一个ADORecordConstruction 对象中并转换为一个ADO RecordSet。每当您实际访问对象的数据时,SSIS 都会隐式执行此操作。
如果没有脚本,在 SSIS 执行中查看此数据的唯一方法是使用 Foreach 循环容器。
话虽如此,如果您真的想查看对象的数据,我强烈建议您创建一个数据流,将对象转换为脚本源,然后将数据查看器附加到它以查看网格形式的数据。
最后,我建议如果您只是尝试调试和查看 SQL 任务返回的数据集,脚本任务可以执行查询并将其结果非常快速地推送到(例如)本地文件中。
另一种方法是使用 ADO.NET 连接而不是 OLEDB。如果您使用 ADO.NET 连接,您将获得 ADO.NET DataSet 对象。DataSet 是 DataTable 的集合。
DataSet 教程的一些链接 -
http://www.dotnetperls.com/dataset
斯科特米切尔的 tu -