状態レコードのシーケンス
2 つ以上の状態レコードが返された場合、ドライバー マネージャーとドライバーは、次のルールに従ってそれらをランク付けします。 ランクが最も高いレコードが最初のレコードです。 レコードのソース (ドライバー マネージャー、ドライバー、ゲートウェイなど) は、レコードのランク付け時には考慮されません。
エラー エラーを説明するステータス レコードが最も高いランクを持ちます。 エラー レコードのうち、トランザクションエラーまたはトランザクションエラーの可能性を示すレコードは、他のすべてのレコードを上回ります。 2 つ以上のレコードで同じエラー条件が記述されている場合、Open Group CLI 仕様 (クラス 03 から HZ) によって定義された SQLSTATE は、ODBC で定義された SQLSTATE とドライバー定義の SQLSTATE を上回っています。
実装定義のデータなし値 ドライバ定義のデータなし値 (クラス 02) を記述するステータス レコードは、2 番目に高いランクを持ちます。
警告 警告を説明するステータス レコード (クラス 01) のランクが最も低くなります。 2 つ以上のレコードで同じ警告条件が記述されている場合、Open Group CLI 仕様で定義された警告 SQLSTATE は、ODBC で定義された SQLSTATE とドライバー定義の SQLSTATE を上回っています。
ランクが最も高いレコードが 2 つ以上ある場合、どのレコードが最初のレコードであるかは未定義です。 他のすべてのレコードの順序は未定義です。 特に、エラーの前に警告が表示される可能性があるため、アプリケーションは、関数が SQL_SUCCESS 以外の値を返すときに、すべての状態レコードを確認する必要があります。