我有一个SSIS项目,在运行一堆SQL数据任务后同时出现故障和成功流程,例如:
如您所见,有两种不同的创建电子邮件脚本任务。两个脚本任务都包含以下行:
OleDbDataAdapter da = new System.Data.OleDb.OleDbDataAdapter();
DataTable dt = new DataTable();
da.Fill(dt, Dts.Variables["LogResultSet"].Value); //this line causing error
其中LogResultSet是变量的对象类型,默认值为“System.Object”。即使上面的行对于成功流程正常工作,但在发生故障时它会给出如下错误。
Object不是ADODB.RecordSet或ADODB.Record。
发生的故障是执行的一个存储过程中的虚假故障,如:
raiserror('Oh no a fatal error', 15, -1)
当我试图查看“Dts.Variables [”LogResultSet“]的值时。通过使用MessageBox,我注意到成功流程的值为System._ComObject
,但它是{{1对于故障流程。因此,出于某种原因,System.Object
值在发生任何错误且序列失败时不会发生变化。我找不到为什么以及如何解决它。
我在网上搜索,在许多平台上寻找解决方案,包括下面的链接,但没有任何帮助。请注意,我尝试了以下链接中提供的所有解决方案,没有帮助.. System.ArgumentException: Object is not an ADODB.RecordSet or an ADODB.Record
任何建议或帮助将不胜感激。谢谢!