0

我正在尝试创建一个包含多个数据流任务的包。这些任务在性质上非常相似,但包含相当重要的差异。

我试图复制任务,然后更改需要更改的内容。

当我自己运行任务时,它运行良好,但是当我与包中的所有其他任务一起运行它时,我收到以下错误:

你调用的对象是空的。 在 ScriptMain.Input0_ProcessInputRow(Input0Buffer Row) 在 UserComponent.Input0_ProcessInput(Input0Buffer Buffer) 在 UserComponent.ProcessInput(Int32 InputID, String InputName, PipelineBuffer Buffer, OutputNameMap OutputMap) 在 Microsoft.SqlServer.Dts.Pipeline.ScriptComponent.ProcessInput(Int32 InputID, PipelineBuffer缓冲区)在 Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.ProcessInput(Int32 inputID,PipelineBuffer 缓冲区)

不是最友好的错误消息。

谁能告诉我这是什么以及如何解决它?我假设有一些变量或其他属性被重复,但是哪一个?

请注意,多个数据流任务中的许多列将具有相同的列名。

4

3 回答 3

1

我最终想通了。原因是二级对象需要显式声明。

我有

public class Level2
{
    public string Somevalue { get; set; }
}
public class RootAttributes
{
    public Level2 lvl2 { get; set; }
    public string Somevalue2 { get; set; }
}

应该是

public class Level2
{
    public string Somevalue { get; set; }
}
public class RootAttributes
{
    public Level2 lvl2 = new Level2;
    public string Somevalue2 { get; set; }
}

奇怪的是,顶级方法在其他几个地方也有效。

于 2018-02-16T09:42:51.380 回答
1

我的发送邮件任务遇到了这个问题。

当我为我的电子邮件正文使用文件连接时,我必须创建一个新的文件连接并且它工作正常。

于 2021-01-12T14:41:12.223 回答
0

使用 vs 2012 中的包运行报告来确定哪个 DFT 任务包失败。使用包的查看代码选项来查看是否所有的 DFT 任务都有正确的输入。

于 2018-02-14T18:35:18.247 回答