状态记录的序列

如果返回两个或多个状态记录,驱动程序管理器和驱动程序会根据以下规则对其进行排名。 排名最高的记录是第一条记录。 在对记录进行排名时,不会考虑记录的来源(驱动程序管理器、驱动程序、网关等)。

  • Errors 描述错误状态记录排名最高的状态记录。 在错误记录中,指示事务失败或可能的事务失败的记录会比所有其他记录排名更高。 如果存在两条或更多条记录描述了相同的错误条件,则 Open Group CLI 规范(03 到 HZ 类)定义的 SQLSTATE 比 ODBC 定义的 SQLSTATE 和驱动程序定义的 SQLSTATE 排名更高。

  • Implementation-defined No Data Values 描述驱动程序定义的无数据值(02 类)具有第二高排名的状态记录。

  • Warnings 描述警告(01 类)的排名最低的状态记录。 如果存在两条或更多条记录描述了相同的警告条件,则 Open Group CLI 规范定义的警告 SQLSTATE 比 ODBC 定义的 SQLSTATE 和驱动程序定义的 SQLSTATE 排名更高。

如果存在两条或更多条具有最高排名的记录,未定义哪条记录会成为第一条记录。 所有其他记录的顺序未定义。 具体而言,由于警告可能出现在错误之前,应用程序应在函数返回除 SQL_SUCCESS 以外的值时检查所有状态记录。