Asignaciones SQLSTATE
En este tema se describen los valores de SQLSTATE para ODBC 2.x y ODBC 3.x. Para obtener más información sobre los valores de SQLSTATE de ODBC 3.x, vea Apéndice A: Códigos de error ODBC.
En ODBC 3.x, los VALORES SQLSTATEs de HYxxx se devuelven en lugar de S1xxx y se devuelven 42Sxx SQLSTATEs en lugar de S00XX. Esto se hizo para alinearse con los estándares Open Group e ISO. En muchos casos, la asignación no es uno a uno porque los estándares han redefinido la interpretación de varios SQLSTATEs.
Cuando se actualiza una aplicación ODBC 2.x a una aplicación ODBC 3.x, la aplicación debe cambiarse para esperar SQLSTATEs ODBC 3.x en lugar de SQLSTATEs ODBC 2.x. En la tabla siguiente se enumeran los SQLSTATEs ODBC 3.x a los que se asigna cada SQLSTATE ODBC 2.x .
Cuando el atributo de entorno SQL_ATTR_ODBC_VERSION se establece en SQL_OV_ODBC2, el controlador publica SQLSTATEs de ODBC 2.x en lugar de SQLSTATEs de ODBC 3.x cuando se llama a SQLGetDiagField o SQLGetDiagRec. Se puede determinar una asignación específica anotando el SQLSTATE de ODBC 2.x en la columna 1 de la siguiente tabla que corresponde al SQLSTATE de ODBC 3.x en la columna 2.
ODBC 2.x SQLSTATE | ODBC 3.x SQLSTATE | Comentarios |
---|---|---|
01S03 | 01001 | |
01S04 | 01001 | |
22003 | HY019 | |
22008 | 22007 | |
22005 | 22018 | |
24000 | 07005 | |
37.000 | 42000 | |
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 se asigna a ODBC 3.x SQLSTATE 07009 si la función subyacente es SQLBindCol, SQLColAttribute, SQLExtendedFetch, SQLFetch, SQLFetchScroll o SQLGetData. |
S1003 | HY003 | |
S1004 | HY004 | |
S1008 | HY008 | |
S1009 | HY009 | Se devuelve para un uso no válido de un puntero NULO. |
S1009 | HY024 | Se devuelve para un valor de atributo no válido. |
S1009 | HY092 | Se devuelve para actualizar o eliminar datos mediante una llamada a SQLSetPos, o agregar, actualizar o eliminar datos mediante una llamada a SQLBulkOperations, cuando la simultaneidad es de solo lectura. |
S1010 | HY007 HY010 | SQLSTATE S1010 se asigna a SQLSTATE HY007 cuando se llama a SQLDescribeCol antes de llamar a SQLPrepare, SQLExecDirect o una función de catálogo para StatementHandle. De lo contrario, SQLSTATE S1010 se asigna a SQLSTATE HY010. |
S1011 | HY011 | |
S1012 | HY012 | |
S1090 | HY090 | |
S1091 | HY091 | |
S1092 | HY092 | |
S1093 | 07009 | ODBC 3.x SQLSTATE 07009 se asigna a ODBC 2.x SQLSTATE S1093 si la función subyacente es SQLBindParameter o 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 |
Nota:
ODBC 3.x SQLSTATE 07008 se asigna a ODBC 2.x SQLSTATE S1000.