다음을 통해 공유


SQLSTATE 매핑

이 항목에서는 ODBC 2.x 및 ODBC 3.x 에 대한 SQLSTATE 값에 대해 설명합니다. ODBC 3.x SQLSTATE 값에 대한 자세한 내용은 부록 A: ODBC 오류 코드를 참조 하세요.

ODBC 3.x에서는 S1xxx 대신 HYxxx SQLSTATE가 반환되고 S00XX 대신 42Sxx SQLSTATE가 반환됩니다. 이는 Open Group 및 ISO 표준에 맞게 수행되었습니다. 대부분의 경우 표준이 여러 SQLSTATE의 해석을 다시 정의했기 때문에 매핑은 일대일이 아닙니다.

ODBC 2.x 애플리케이션을 ODBC 3.x 애플리케이션으로 업그레이드하는 경우 ODBC 2.x SQLSTATE 대신 ODBC 3.x SQLSTATE를 예상하도록 애플리케이션을 변경해야 합니다. 다음 표에서는 각 ODBC 2.x SQLSTATE가 매핑되는 ODBC 3.x SQLSTATE를 나열합니다.

SQL_ATTR_ODBC_VERSION 환경 특성이 SQL_OV_ODBC2 설정되면 드라이버는 SQLGetDiagField 또는 SQLGetDiagRec를 호출할 때 ODBC 3.x SQLSTATE 대신 ODBC 2.x SQLSTATE를 게시합니다. 열 2의 ODBC 3.x SQLSTATE에 해당하는 다음 표의 열 1에 있는 ODBC 2.x SQLSTATE를 확인하여 특정 매핑을 확인할 수 있습니다.

ODBC 2.x SQLSTATE ODBC 3.x SQLSTATE 설명
01S03 01001
01S04 01001
22003 HY019
22008 22007
22005 22018
24000 07005
37000 42000
70100 HY018
S0001 42S01
S0002 42S02
S0011 42S11
S0012 42S12
S0021 42S21
S0022 42S22
S0023 42S23
S1000 HY000
S1001 HY001
S1002 07009 기본 함수가 SQLBindCol, SQLColAttribute, SQLExtendedFetch, SQLFetch, SQLFetchScroll 또는 SQLGetData인 경우 ODBC 2.x SQLSTATE S1002는 ODBC 3.x SQLSTATE 07009에 매핑됩니다.
S1003 HY003
S1004 HY004
S1008 HY008
S1009 HY009 null 포인터를 잘못 사용하기 위해 반환됩니다.
S1009 HY024 잘못된 특성 값에 대해 반환됩니다.
S1009 HY092 동시성이 읽기 전용인 경우 SQLSetPos를 호출하여 데이터를 업데이트하거나 삭제하거나 SQLBulkOperations를 호출하여 데이터를 추가, 업데이트 또는 삭제하기 위해 반환됩니다.
S1010 HY007 HY010 SQLPrepare, SQLExecDirect 또는 StatementHandle에 대한 카탈로그 함수를 호출하기 전에 SQLDescribeCol이 호출될 때 SQLSTATE S1010이 SQLSTATE HY007에 매핑됩니다. 그렇지 않으면 SQLSTATE S1010이 SQLSTATE HY010에 매핑됩니다.
S1011 HY011
S1012 HY012
S1090 HY090
S1091 HY091
S1092 HY092
S1093 07009 기본 함수가 SQLBindParameter 또는 SQLDescribeParam인 경우 ODBC 3.x SQLSTATE 07009가 ODBC 2.x SQLSTATE S1093에 매핑됩니다.
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에 매핑됩니다.