DTS包中的ActiveX脚本可以返回DTSTaskExecResult_Success或DTSTaskExecResult_Failure。有没有办法表明,如果没有使整个包裹失败,它不会成功?我们希望它继续前进,但是方向不同。路径的选项是“成功”,“失败”和“完成”,但似乎ActiveX脚本的唯一返回值是“失败”和“成功”。 'DTSTaskExecResult_Completion'不对。是什么?
(我们可能会采用的解决方法是将其修改为SSIS,但我想知道DTS是否可行。)
答案 0 :(得分:1)
据我所知,在使用ActiveX DTS组件时,您的选项仅限于成功/失败。 :(
-Shaun
答案 1 :(得分:1)
尝试设置 DTSTaskExecResult_Retry 返回值;它告诉你它失败了,但没有彻底失败?
编辑:抱歉它是: DTSTaskExecResult_RetryStep
仅供参考:ActiveScriptTask对象具有对GlobalVariables集合的完全访问权限,该集合提供了跨任务共享信息的方法。
答案 2 :(得分:0)
是的,选项仅限于成功/失败。 你也可以使用RetryStep选项,但要做什么?此选项只是重复该步骤,DTS永远不会结束。 我使用的选项是始终使用Success结果。 但是之前要设置结果,我会进行检查,如果我不想执行下一步,只需将任务(下一个任务)设置为已完成。 通过这种方式,下一个任务不会被执行,你的目的就会成功。
样品:
Set oPackage = DTSGlobalVariables.Parent
If HasRows = 0 Then
oPackage.Steps("DTSStep_DTSExecuteSQLTask_1").ExecutionStatus = DTSStepExecStat_Completed
End If
Main = DTSTaskExecResult_Success
希望这对任何人都有帮助。
此致