以下规则控制 SQLGetDiagRec 和 SQLGetDiagField 中的诊断处理。
对于所有 ODBC 组件:
不得替换、更改或屏蔽从其他 ODBC 组件收到的错误或警告。
当其他 ODBC 组件收到诊断消息时,可能会添加其他状态记录。 添加的记录必须为原始消息增添实际的信息价值。
对于直接连接数据源的 ODBC 组件:
必须将供应商标识符、组件标识符和数据源的标识符作为其从数据源收到的诊断消息的前缀。
必须保留数据源的原生错误代码。
必须保留数据源的诊断消息。
对于生成独立于数据源的错误或警告的任何 ODBC 组件:
必须为错误或警告提供正确的 SQLSTATE。
必须生成诊断消息的文本。
必须在诊断消息中添加供应商标识符和组件标识符作为前缀。
如果本机错误代码可用且有意义,则必须返回。
对于与驱动程序管理器接口的 ODBC 组件:
必须初始化 SQLGetDiagRec 和 SQLGetDiagField 的输出参数。
调用该函数时,必须将诊断信息格式化并返回为 SQLGetDiagRec 和 SQLGetDiagField 的输出参数。
对于除驱动程序管理器外的一个 ODBC 组件:
- 必须基于本机错误设置 SQLSTATE。 对于不使用网关的基于文件的驱动程序和基于 DBMS 的驱动程序,驱动程序必须设置 SQLSTATE。 对于使用网关的基于 DBMS 的驱动程序,支持 ODBC 的驱动程序或网关可以设置 SQLSTATE。