诊断处理规则

以下规则用于控制 SQLGetDiagRecSQLGetDiagField 中的诊断处理。

对于所有 ODBC 组件:

  • 不得取代、修改或屏蔽从其他 ODBC 组件收到的错误或警告。

  • 当收到来自另一个 ODBC 组件的诊断消息时,可能会添加其他状态记录。 添加的记录必须向原始消息添加实际信息值。

对于直接连接数据源的 ODBC 组件:

  • 必须将供应商标识符、组件标识符和数据源的标识符作为其从数据源收到的诊断消息的前缀。

  • 必须保留数据源的本机错误代码。

  • 必须保留数据源的诊断消息。

对于生成独立于数据源的错误或警告的任何 ODBC 组件:

  • 必须为错误或警告提供正确的 SQLSTATE。

  • 必须生成诊断消息的文本。

  • 必须将其供应商标识符和组件标识符作为前缀添加到诊断消息中。

  • 如果本机错误代码可用且有意义,则必须返回本机错误代码。

对于连接驱动程序管理器的 ODBC 组件:

  • 必须初始化 SQLGetDiagRecSQLGetDiagField 的输出参数。

  • 调用该函数时,必须将诊断信息格式化并作为 SQLGetDiagRecSQLGetDiagField 的输出参数返回。

对于驱动程序管理器以外的一个 ODBC 组件:

  • 必须基于本机错误设置 SQLSTATE。 对于不使用网关的基于文件的驱动程序和基于 DBMS 的驱动程序,驱动程序必须设置 SQLSTATE。 对于使用网关的基于 DBMS 的驱动程序,支持 ODBC 的驱动程序或网关可以设置 SQLSTATE。