我正在尝试创建一个包含多个数据流任务的包。这些任务本质上非常相似,但包含相当重要的差异。
我尝试复制任务,然后更改需要更改的内容。
当我单独运行任务时它运行正常,但是当我运行它与包中的所有其他任务时,我得到以下错误:
对象引用未设置为对象的实例。 at ScriptMain.Input0_ProcessInputRow(Input0Buffer Row)at UserComponent.Input0_ProcessInput(Input0Buffer Buffer)at UserComponent.ProcessInput(Int32 InputID,String InputName, PipelineBuffer Buffer,OutputNameMap OutputMap)at Microsoft.SqlServer.Dts.Pipeline.ScriptComponent.ProcessInput(的Int32 InputID,PipelineBuffer buffer)at Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.ProcessInput(的Int32 inputID,PipelineBuffer buffer)
不是最友好的错误消息。
谁能告诉我这是什么以及如何解决?我假设有一些变量或其他属性正在重复,但是哪一个?
请注意,多个数据流任务中的许多列都具有相同的列名。
答案 0 :(得分:0)
使用vs 2012中的程序包运行报告来确定哪个DFT任务包失败。 使用包的视图代码选项来查看是否所有DFT任务都有正确的输入。
答案 1 :(得分:0)
我最终想通了。原因是需要显式声明第二级对象。
我有
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; }
}
奇怪的是,顶级方法在其他几个地方有效。
答案 2 :(得分:0)
我的发送邮件任务遇到了这个问题。
因为我在电子邮件正文中使用了文件连接,所以我必须创建一个新的文件连接并且它工作正常。