错误代码映射

DRDA 服务根据存储在 %DRDAROOT%\system 目录中 MsDrdaErrorMappings.xml 文件中的一组已定义的映射,将 SQL Server 错误代码和消息转换为 DRDA 回复消息或 DB2 SQLCA(通信区域)的实例。 传入的 SQL Server 错误代码映射到传出的 DB2 错误代码。 XML 文档包含一组标准格式,如关联的 HostIntegrationDrdaSqlErrorMappings.xsd 架构文件中所述。

<SqlErrorMappings>  
<sqlErrorMapping  
msSqlMessageId="201"   
msSqlMessageSeverityLevel="16"  
msSqlMessageText="Procedure or function '{0}' expects parameter '{1}', which was not supplied."  
drdaSqlCode="-313"  
drdaSqlState="07001"  
drdaReasonCode=""  
drdaMessageText="THE NUMBER OF HOST VARIABLES SPECIFIED IS NOT EQUAL TO THE NUMBER OF PARAMETER MARKERS."  
drdaExplanationText="The server cannot execute a SQL statement that contains an incorrect parameter list."  
drdaActionText="Verify the number and type of parameters."  
/>  
  

示例。 SQL Server 错误消息与 DB2 错误消息的映射。

下表显示了Microsoft SQL Server 错误消息。

条目 类型 DESCRIPTION
sql错误映射 元素 sqlErrorMappings 元素包含 sqlErrorMapping 定义元素。
sqlErrorMapping 元素 sqlErrorMapping 元素包含映射到 DRDA 回复消息的 SQL Server 错误消息的定义。

下表显示了Microsoft SQL Server 错误消息。

条目 类型 DESCRIPTION
msSqlMessageId 整数 msSqlMessageId 属性表示消息的标识符(ID),是服务器上的唯一值。 此必需属性接受整数值。
msSqlMessageSeverityLevel 整数 msSqlMessageSeverityLevel 属性表示消息的严重级别,介于 1 到 25 之间。 此必需属性接受整数值。
msSql消息文本 string(1024) msSqlMessageText 属性表示消息文本。 此必需属性接受字符串值。

下表显示了 IBM DB2 错误消息。

条目 类型 DESCRIPTION
drdaSqlCode 整数 drdaSqlCode 属性表示 IBM DB2 SQLCODE。 此必需属性接受整数值。
drdaSqlState 整数 drdaSqlState 属性表示 IBM DB2 SQLSTATE。 此必需属性接受整数值。
drdaReasonCode 十六进制二进制编码 drdaReasonCode 属性表示 IBM DB2 原因代码。 此可选属性接受十六进制二进制值。 默认值为 0。
DRDA信息文本 字符串 drdaMessageText 属性表示 IBM DB2 消息文本。 此必需属性接受字符串值。
drda说明文本 字符串 drdaExplanationText 属性表示 IBM DB2 解释文本。 此可选属性接受字符串值。
drdaActionText 字符串 drdaActionText 属性表示 IBM DB2 动作文本。 此可选属性接受字符串值。