Comparteix a través de


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.