【问题标题】:How to programmatically set the AutoAdjustBufferSize property for a DataFlow?如何以编程方式为 DataFlow 设置 AutoAdjustBufferSize 属性?
【发布时间】:2017-06-09 19:51:01
【问题描述】:

如何以编程方式为 DataFlow 设置 AutoAdjustBufferSize 属性?即

MainPipe mp = ((TaskHost)p.Executables.Add("DTS.Pipeline")).InnerObject as MainPipe;
mp.AutoAdjustBufferSize = true;

【问题讨论】:

  • 请提供更多关于您正在尝试执行的操作、您看到的任何错误等的详细信息。请查看How to Askhelp center
  • 我在问题中发布的代码不起作用,它旨在表示 DataFlowTask 的创建和 AutoAdjustBufferSize 属性的设置。
  • 我需要回答的问题是:有人知道怎么做吗?该属性不会出现在智能感知中,并且尝试设置它是行不通的。当然,一旦代码运行以创建 ssis 包(使用 IDE),我总是可以设置该属性。但要求是在创建包之前设置属性,而不是事后。

标签: c# ssis dataflowtask


【解决方案1】:

MainPipe 只实现了 IDTSPipeline100 接口。 AutoAdjustBufferSize 在 IDTSPipeline100 接口上不可用,但在 IDTSPipeline130 接口上可用。因此,您可以执行以下操作之一:

IDTSPipeline130 mp = ((TaskHost)p.Executables.Add("DTS.Pipeline")).InnerObject as IDTSPipeline130;
mp.AutoAdjustBufferSize = true;

MainPipe mp = ((TaskHost)p.Executables.Add("DTS.Pipeline")).InnerObject as MainPipe;
(mp as IDTSPipeline130).AutoAdjustBufferSize = true;

“130”类/接口扩展了一些 SSIS 功能,但仅适用于 SQL Server 2016+;如果您添加了 Microsoft.SQLServer.DTSPipelineWrap 程序集的 v4.0_13.0.0.0 版本,IDTSPipeline130 itnerface 将可用

【讨论】:

  • 还有一个选项是taskHost.Properties["AutoAdjustBufferSize"].SetValue(taskHost, true);
猜你喜欢
  • 2021-06-22
  • 2023-01-03
  • 2018-03-19
  • 2021-05-20
  • 1970-01-01
相关资源
最近更新 更多