Сопоставления SQLSTATE
В этом разделе рассматриваются значения SQLSTATE для ODBC 2.x и ODBC 3.x. Дополнительные сведения о значениях ODBC 3.x SQLSTATE см . в приложении A: Коды ошибок ODBC.
В ODBC 3.x возвращаются значения HYx SQLSTATEs вместо S1x, а 42Sx SQLSTATEs вместо S00XX. Это было сделано для соответствия стандартам Open Group и ISO. Во многих случаях сопоставление не одно к одному, так как стандарты переопределили интерпретацию нескольких SQLSTATEs.
Когда приложение ODBC 2.x обновляется до приложения ODBC 3.x, приложение должно быть изменено, чтобы ожидать ODBC 3.x SQLSTATEs вместо ODBC 2.x SQLSTATEs. В следующей таблице перечислены SQLSTATEs ODBC 3.x, с которым сопоставляется каждый ODBC 2.x SQLSTATE.
Если для атрибута среды SQL_ATTR_ODBC_VERSION задано значение SQL_OV_ODBC2, драйвер публикует ODBC 2.x SQLSTATEs вместо ODBC 3.x SQLSTATEs при вызове SQLGetDiagField или SQLGetDiagRec . Определенное сопоставление можно определить, отметив ODBC 2.x SQLSTATE в столбце 1 следующей таблицы, которая соответствует ODBC 3.x SQLSTATE в столбце 2.
ODBC 2.x SQLSTATE | ODBC 3.x SQLSTATE | Комментарии |
---|---|---|
01S03 | 01001 | |
01S04 | 01001 | |
22003 | HY019 | |
22008 | 22007 | |
22005 | 22018 | |
24000 | 07005 | |
37000 | 42 000 | |
70100 | HY018 | |
S0001 | 42S01 | |
S0002 | 42S02 | |
S0011 | 42S11 | |
S0012 | 42S12 | |
S0021 | 42S21 | |
S0022 | 42S22 | |
S0023 | 42S23 | |
S1000 | HY000 | |
S1001 | HY001 | |
S1002 | 07009 | ODBC 2.x SQLSTATE S1002 сопоставляется с ODBC 3.x SQLSTATE 07009, если базовая функция — SQLBindCol, SQLColAttribute, SQLExtendedFetch, SQLFetch, SQLFetchScroll или SQLGetData. |
S1003 | HY003 | |
S1004 | HY004 | |
S1008 | HY008 | |
S1009 | HY009 | Возвращается для недопустимого использования указателя NULL. |
S1009 | HY024 | Возвращается для недопустимого значения атрибута. |
S1009 | HY092 | Возвращается для обновления или удаления данных путем вызова SQLSetPos или добавления, обновления или удаления данных вызовом SQLBulkOperations, когда параллелизм доступен только для чтения. |
S1010 | HY007 HY010 | SQLSTATE S1010 сопоставляется с SQLSTATE HY007 при вызове SQLDescribeCol до вызова SQLPrepare, SQLExecDirect или функции каталога для StatementHandle. В противном случае SQLSTATE S1010 сопоставляется с SQLSTATE HY010. |
S1011 | HY011 | |
S1012 | HY012 | |
S1090 | HY090 | |
S1091 | HY091 | |
S1092 | HY092 | |
S1093 | 07009 | ODBC 3.x SQLSTATE 07009 сопоставляется с ODBC 2.x SQLSTATE S1093, если базовая функция — SQLBindParameter или SQLDescribeParam. |
S1096 | HY096 | |
S1097 | HY097 | |
S1098 | HY098 | |
S1099 | HY099 | |
S1100 | HY100 | |
S1101 | HY101 | |
S1103 | HY103 | |
S1104 | HY104 | |
S1105 | HY105 | |
S1106 | HY106 | |
S1107 | HY107 | |
S1108 | HY108 | |
S1109 | HY109 | |
S1110 | HY110 | |
S1111 | HY111 | |
S1C00 | HYC00 | |
S1T00 | HYT00 |
Примечание.
ODBC 3.x SQLSTATE 07008 сопоставляется с ODBC 2.x SQLSTATE S1000.