SSIS 中 Dts.Events.FireError 的参数“errorCode”可接受的值是多少?

问题描述 投票:0回答:1

SSIS 具有脚本对象

Script Task
Script Component
,它们提供了预期的
.Net
编程环境。其中有各种事件方法用于触发错误条件并将信息发送到外部环境。 Microsoft 文档此处

这些方法中有三种对应于 Microsoft“Basic”语言之一的典型方法。它们是:

FireInformation
FireWarning
FireError

对于其中每一个,第一个参数是一个代码编号:分别是

informationCode
warningCode
errorCode

对于这些代码,我询问以下问题:

  • 什么是可接受的值? (我找不到这个信息)
  • 有系统保留的范围吗? (例如 VBA 中的 0 到 1023 和/或 1024 到 65535)
  • 有常数吗? (如
    VBA.vbObjectError
    = &H80040000)
  • 代码有枚举吗?

对于任何在 SSIS 中做过大量工作的人来说,可能已经知道某些文档有点薄弱,因此任何信息都会有所帮助。

所以基本上...有什么独家新闻?

c# .net sql-server vb.net ssis
1个回答
0
投票

此代码可以是任何适合 Int32 的值。 建议您将其用作错误级别。 示例代码使用

3
表示信息,使用
14
表示警告,使用
18
表示错误。

/* This script task can fire events for logging purposes.
 * 
 * Example of firing an error event:
 *  Dts.Events.FireError(18, "Process Values", "Bad value", "", 0);
 * 
 * Example of firing an information event:
 *  Dts.Events.FireInformation(3, "Process Values", "Processing has started", "", 0, ref fireAgain)
 * 
 * Example of firing a warning event:
 *  Dts.Events.FireWarning(14, "Process Values", "No values received for input", "", 0);
 * */

您可能决定使用一个范围来区分错误和严重错误。 我见过的所有其他示例始终使用

0
,但这取决于您的用例。

出于集成目的,任何错误都足以停止总线以防止数据加载不完整——无论这是数据异常还是系统可用性问题。 对于此类工作,我从不关心代码范围,因为所有错误都同样糟糕。

© www.soinside.com 2019 - 2024. All rights reserved.