Udostępnij przez


Sekwencja rekordów stanu

Jeśli są zwracane co najmniej dwa rekordy stanu, Menedżer sterowników i sterownik klasyfikują je zgodnie z następującymi regułami. Rekord o najwyższej rangi jest pierwszym rekordem. Źródło rekordu (Menedżer sterowników, sterownik, brama itd.) nie jest brane pod uwagę podczas klasyfikowania rekordów.

  • Błędy Rekordy stanu opisujące błędy mają najwyższą rangę. Wśród rekordów błędów, rekordy wskazujące na niepowodzenie transakcji lub możliwe niepowodzenie transakcji mają wyższy priorytet niż wszystkie inne rekordy. Jeśli dwa lub więcej rekordów opisują ten sam warunek błędu, wartości SQLSTATE zdefiniowane przez specyfikację CLI Open Group (klasy od 03 do HZ) mają wyższy priorytet niż wartości SQLSTATE zdefiniowane przez ODBC i sterownik.

  • Zdefiniowane przez implementację wartości 'No Data' Rekordy stanu opisujące wartości 'No Data' zdefiniowane przez sterownik (klasa 02) mają drugą najwyższą rangę.

  • Ostrzeżenia Rekordy stanu opisujące ostrzeżenia (klasa 01) mają najniższą rangę. Jeśli dwa lub więcej rekordów opisuje ten sam warunek ostrzegawczy, to SQLSTATEs zdefiniowane przez specyfikację CLI Open Group mają priorytet nad SQLSTATEs zdefiniowanymi przez ODBC i sterownik.

Jeśli istnieje co najmniej dwa rekordy o najwyższej rangi, jest on niezdefiniowany, który rekord jest pierwszym rekordem. Kolejność wszystkich innych rekordów jest niezdefiniowana. W szczególności, ponieważ ostrzeżenia mogą pojawiać się przed błędami, aplikacje powinny sprawdzać wszystkie rekordy stanu, gdy funkcja zwraca wartość inną niż SQL_SUCCESS.