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 动作文本。 此可选属性接受字符串值。 |