SSIS中Dts.Events.FireError的errorCode参数可接受值及相关规则咨询
SSIS脚本任务/组件中FireXXX方法的代码参数疑问解答
SSIS的Script Task和Script Component提供.NET编程环境,其中FireInformation、FireWarning、FireError三个事件方法用于向外部传递状态或错误信息,它们的第一个参数分别为informationCode、warningCode、errorCode,针对这些参数的疑问解答如下:
1. 可接受值
官方文档未明确限定具体数值范围,实际使用中只要是**整数类型(int)**均可传入。行业惯例里通常使用自定义正整数区分不同场景,便于后续日志排查定位。
2. 系统保留范围
SSIS没有公开的系统保留代码范围(类似VBA的0-1023/1024-65535)。但需要注意:包内调用的SSIS内置组件或第三方组件可能会使用特定区间的代码,建议自定义代码避开常见系统组件使用区间(比如将0-9999留给系统,自定义代码从10000开始),避免冲突。
3. 相关常量
SSIS没有提供类似VBA vbObjectError 的内置常量,你可以在脚本中自行定义常量统一管理:
// C# 示例 private const int INFO_CONNECT_SUCCESS = 10001; private const int WARN_FILE_MISSING = 20001; private const int ERROR_DB_WRITE_FAILED = 30001;
' VB.NET 示例 Private Const INFO_CONNECT_SUCCESS As Integer = 10001 Private Const WARN_FILE_MISSING As Integer = 20001 Private Const ERROR_DB_WRITE_FAILED As Integer = 30001
4. 对应的枚举类型
SSIS没有内置的枚举类型对应这些代码,可根据业务场景自定义枚举提升代码可读性:
// C# 自定义枚举 public enum CustomEventCodes { InfoConnectSuccess = 10001, WarnFileMissing = 20001, ErrorDbWriteFailed = 30001 } // 使用示例 Dts.Events.FireInformation((int)CustomEventCodes.InfoConnectSuccess, "连接成功", "数据库连接已建立", "", 0, ref fireAgain);
' VB.NET 自定义枚举 Public Enum CustomEventCodes InfoConnectSuccess = 10001 WarnFileMissing = 20001 ErrorDbWriteFailed = 30001 End Enum ' 使用示例 Dts.Events.FireInformation(CInt(CustomEventCodes.InfoConnectSuccess), "连接成功", "数据库连接已建立", "", 0, fireAgain)
内容的提问来源于stack exchange,提问作者spinjector
相关产品推荐
相关产品推荐

