Apéndice A: Códigos de error de ADO
En este tema se describen los valores de SQLSTATE para ODBC 3. x. Para obtener más información sobre ODBC 3. x valores de SQLSTATE, consulte Asignaciones de SQLSTATE.
SQLGetDiagRec o SQLGetDiagField devuelve valores SQLSTATE definidos por Open Group Administración de datos: Lenguaje de consulta estructurado (SQL), versión 2 (marzo de 1995). Los valores SQLSTATE son cadenas que contienen cinco caracteres. En la tabla siguiente se enumeran los valores de SQLSTATE que un controlador puede devolver para SQLGetDiagRec.
El valor de cadena de caracteres devuelto para sqlSTATE consta de un valor de clase de dos caracteres seguido de un valor de subclase de tres caracteres. Un valor de clase de "01" indica una advertencia y va acompañado de un código de retorno de SQL_SUCCESS_WITH_INFO. Los valores de clase distintos de "01", excepto la clase "IM", indican un error y van acompañados de un valor devuelto de SQL_ERROR. La clase "IM" es específica de advertencias y errores que derivan de la implementación de ODBC en sí. El valor de subclase "000" en cualquier clase indica que no hay ninguna subclase para ese SQLSTATE. Sql-92 define la asignación de valores de clase y subclase.
Nota
Aunque la ejecución correcta de una función normalmente se indica mediante un valor devuelto de SQL_SUCCESS, SQLSTATE 00000 también indica que se ha realizado correctamente.
SQLSTATE | Error | Se puede devolver desde |
---|---|---|
01000 | Advertencia general | Todas las funciones ODBC excepto: SQLError SQLGetDiagField SQLGetDiagRec |
01001 | Conflicto de la operación del cursor | SQLExecDirect SQLExecute SQLParamData SQLSetPos |
01002 | Error de desconexión | SQLDisconnect |
01003 | Valor NULL eliminado en la función set | SQLExecDirect SQLExecute SQLParamData |
01004 | Datos de cadena, truncados a la derecha | SQLBrowseConnect SQLBulkOperations SQLColAttribute SQLDataSources SQLDescribeCol SQLDriverConnect SQLDrivers SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetConnectAttr SQLGetCursorName SQLGetData SQLGetDescField SQLGetDescRec SQLGetEnvAttr SQLGetInfo SQLGetStmtAttr SQLNative Sql SQLParamData SQLPutData SQLSetCursorName |
01006 | Privilegio no revocado | SQLExecDirect SQLExecute SQLParamData |
01007 | Privilegio no concedido | SQLExecDirect SQLExecute SQLParamData |
01S00 | Atributo de cadena de conexión no válido | SQLBrowseConnect SQLDriverConnec |
01S01 | Error en la fila | SQLBulkOperations SQLExtendedFetch SQLSetPos |
01S02 | Valor de opción cambiado | SQLBrowseConnect SQLConnect SQLDriverConnect SQLExecDirect SQLExecute SQLParamData SQLPrepare SQLSetConnectAttr SQLSetDescField SQLSetEnvAttr SQLSetStmtAttr |
01S06 | Intento de capturar antes de que el conjunto de resultados devuelva el primer conjunto de filas | SQLExtendedFetch SQLFetchScroll |
01S07 | Truncamiento fraccional | SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLSetPos |
01S08 | Error al guardar el DSN del archivo | SQLDriverConnect |
01S09 | Palabra clave no válida | SQLDriverConnect |
07001 | Número incorrecto de parámetros | SQLExecDirect SQLExecute |
07002 | El campo COUNT es incorrecto | SQLExecDirect SQLExecute SQLParamData |
07005 | Instrucción preparada no es una especificación de cursor | SQLColAttribute SQLDescribeCol |
07006 | Infracción de atributo de tipo de datos restringido | SQLBindCol SQLBindParameter SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLPutData SQLSetPos |
07009 | Índice de descriptor no válido | SQLBindCol SQLBindParameter SQLBulkOperations SQLColAttribute SQLDescribeCol SQLDescribeParam SQLFetch SQLFetchScroll SQLGetData SQLGetDescField SQLGetDescRec SQLParamData SQLSetDescField SQLSetDescRecSQLSetPos |
07S01 | Uso no válido del parámetro predeterminado | SQLExecDirect SQLExecute SQLParamData SQLPutData |
08001 | El cliente no puede establecer la conexión | SQLBrowseConnect SQLConnect SQLDriverConnect |
08002 | Nombre de conexión en uso | SQLBrowseConnect SQLConnect SQLDriverConnect SQLSetConnectAttr |
08003 | Conexión no abierta | SQLAllocHandle SQLDisconnect SQLEndTran SQLGetConnectAttr SQLGetInfo SQLNativeSql SQLSetConnectAttr |
08004 | El servidor rechazó la conexión | SQLBrowseConnect SQLConnect SQLDriverConnect |
08007 | Error de conexión durante la transacción | SQLEndTran |
08S01 | Error de vínculo de comunicación | SQLBrowseConnect SQLColumnPrivileges SQLColumns SQLConnect SQLCopyDesc SQLDescribeCol SQLDescribeParam SQLDriverConnect SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLForeignKeys SQLGetConnectAttr SQLGetData SQLGetDescField SQLGetDescRec SQLGetFunctions SQLGetInfo SQLGetTypeInfo SQLMoreResults SQLNativeSql SQLNumParams SQLNumResultCols SQLParamData SQLPrepare SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLPutData SQLSetConnectAttr SQLSetDescField SQLSetDescRec SQLSetEnvAttr SQLSetStmtAttr SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
21S01 | Insertar lista de valores no coincide con la lista de columnas | SQLExecDirect SQLPrepare |
21S02 | El grado de tabla derivada no coincide con la lista de columnas | SQLBulkOperations SQLExecDirect SQLExecute SQLParamData SQLPrepare SQLSetPos |
22001 | Datos de cadena, truncados a la derecha | SQLBulkOperations SQLExecDirect SQLExecute SQLFetch SQLFetchScroll SQLParamData SQLPutData SQLSetDescField SQLSetPos |
22002 | Variable de indicador necesaria pero no proporcionada | SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData |
22003 | Valor numérico fuera del intervalo | SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLGetInfo SQLParamData SQLPutData SQLSetPos |
22007 | Formato datetime no válido | SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLPutData SQLSetPos |
22008 | Desbordamiento de campo datetime | SQLBulkOperations SQLExecDirect QLParamData SQLPutData |
22012 | División por cero | SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLPutData |
22015 | Desbordamiento de campo de intervalo | SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLPutData SQLSetPos |
22018 | Valor de carácter no válido para la especificación de conversión | SQLBulkOperations SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLGetData SQLParamData SQLPutData SQLSetPos |
22019 | Carácter de escape no válido | SQLExecDirect SQLExecute SQLPrepare |
22025 | Secuencia de escape no válida | SQLExecDirect SQLExecute SQLPrepare |
22026 | Datos de cadena, desigualdad de longitud | SQLParamData |
23000 | Infracción de restricción de integridad | SQLBulkOperations SQLExecDirect SQLExecute SQLParamData SQLSetPos |
24000 | Estado de cursor no válido | SQLBulkOperations SQLCloseCursor SQLColumnPrivileges SQLColumns SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLForeignKeys SQLGetData SQLGetStmtAttr SQLGetTypeInfo SQLNativeSql SQLPrepare SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLSetConnectAttr SQLSetCursorName SQLSetPos SQLSetStmtAttr SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
25000 | Estado de transacción no válido | SQLDisconnect |
25S01 | Estado de las transacciones | SQLEndTran |
25S02 | La transacción sigue activa | SQLEndTran |
25S03 | La transacción se revierte | SQLEndTran |
28000 | Especificación de autorización no válida | SQLBrowseConnect SQLConnect SQLDriverConnect |
34000 | Nombre de cursor no válido | SQLExecDirect SQLPrepare SQLSetCursorName |
3C000 | Nombre de cursor duplicado | SQLSetCursorName |
3D000 | Nombre de catálogo no válido | SQLExecDirect SQLPrepare SQLSetConnectAttr |
3F000 | Nombre de esquema no válido | SQLExecDirect SQLPrepare |
40001 | Error de serialización | SQLBulkOperations SQLColumnPrivileges SQLColumns SQLEndTran SQLExecDirect SQLExecute SQLFetch SQLFetchScroll SQLForeignKeys SQLGetTypeInfo SQLMoreResults SQLParamData SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLSetPos SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
40002 | Infracción de restricción de integridad | SQLEndTran |
40003 | Finalización de instrucciones desconocida | SQLBulkOperations SQLColumnPrivileges SQLColumns SQLExecDirect SQLExecute SQLFetch SQLFetchScroll SQLForeignKeys SQLGetTypeInfo SQLMoreResults SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLParamData SQLSetPos SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
42000 | Error de sintaxis o infracción de acceso | SQLBulkOperations SQLExecDirect SQLExecute SQLParamData SQLPrepare SQLSetPos |
42S01 | La tabla o vista base ya existe | SQLExecDirect SQLPrepare |
42S02 | Tabla base o vista no encontrada | SQLExecDirect SQLPrepare |
42S11 | El índice ya existe | SQLExecDirect SQLPrepare |
42S12 | No se encontró el índice | SQLExecDirect SQLPrepare |
42S21 | La columna ya existe | SQLExecDirect SQLPrepare |
42S22 | Columna no encontrada | SQLExecDirect SQLPrepare |
44000 | Infracción de WITH CHECK OPTION | SQLBulkOperations SQLExecDirect SQLExecute SQLParamData SQLSetPos |
HY000 | Error general | Todas las funciones ODBC excepto: SQLError SQLGetDiagField SQLGetDiagRec |
HY001 | Error de asignación de memoria | Todas las funciones ODBC excepto: SQLError SQLGetDiagField SQLGetDiagRec |
HY003 | Tipo de búfer de aplicación no válido | SQLBindCol SQLBindParameter SQLGetData |
HY004 | Tipo de datos SQL no válido | SQLBindParameter SQLGetTypeInfo |
HY007 | La instrucción asociada no está preparada | SQLCopyDesc SQLGetDescField SQLGetDescRec |
HY008 | Operación cancelada | Todas las funciones ODBC que se pueden procesar de forma asincrónica: SQLBrowseConnect SQLBulkOperations SQLColAttribute SQLColumnPrivileges SQLColumns SQLConnect SQLDescribeCol SQLDescribeParam SQLDisconnect SQLDriverConnect SQLEndTran SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLForeignKeys SQLGetData SQLGetTypeInfo SQLMoreResults SQLNumParams SQLNumResultCols SQLParamData SQLPrepare SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLPutData SQLSetConnectAttr SQLSetPos SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
HY009 | Uso no válido del puntero nulo | SQLAllocHandle SQLBindParameter SQLBulkOperations SQLColumnPrivileges SQLColumns SQLExecDirect SQLForeignKeys SQLGetCursorName SQLGetData SQLGetFunctions SQLNativeSql SQLPrepare SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLPutData SQLSetConnectAttr SQLSetCursorName SQLSetEnvAttr SQLSetStmtAttr SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
HY010 | Error de secuencia de función | SQLAllocHandle SQLBindCol SQLBindParameter SQLBulkOperations SQLCloseCursor SQLColAttribute SQLColumnPrivileges SQLColumns SQLCopyDesc SQLDescribeCol SQLDescribeParam SQLDisconnect SQLEndTran SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLForeignKeys SQLFreeHandle SQLFreeStmt SQLGetConnectAttr SQLGetCursorName SQLGetData SQLGetDescField SQLGetDescRec SQLGetFunctions SQLGetStmtAttr SQLGetTypeInfo SQLMoreResults SQLNumParams SQLNumResultCols SQLParamData SQLPrepare SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLPutData SQLRowCount SQLSetConnectAttr SQLSetCursorName SQLSetDescField SQLSetEnvAttr SQLSetDescRec SQLSetPos SQLSetStmtAttr SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
HY011 | El atributo no se puede establecer ahora | SQLBulkOperations SQLParamData QLSetPos SQLSetStmtAttr |
HY012 | Código de operación de transacción no válido | SQLEndTran |
HY013 | Error de administración de memoria | Todas las funciones ODBC excepto: SQLGetDiagField SQLGetDiagRec |
HY014 | Se superó el límite en el número de identificadores | SQLAllocHandle |
HY015 | No hay ningún nombre de cursor disponible | SQLGetCursorName |
HY016 | No se puede modificar un descriptor de fila de implementación | SQLCopyDesc SQLSetDescField SQLSetDescRec |
HY017 | Uso no válido de un identificador de descriptor asignado automáticamente | SQLFreeHandle SQLSetStmtAttr |
HY018 | Solicitud de cancelación rechazada del servidor | SQLCancel |
HY019 | Datos no binarios y no binarios enviados en partes | SQLPutData |
HY020 | Intento de concatenar un valor NULL | SQLPutData |
HY021 | Información de descriptor incoherente | SQLBindParameter SQLCopyDesc SQLGetDescField SQLSetDescField SQLSetDescRec |
HY024 | Valor de atributo no válido | SQLSetConnectAttr SQLSetEnvAttr SQLSetStmtAttr |
HY090 | Longitud de búfer o cadena no válida | SQLBindCol SQLBindParameter SQLBrowseConnect SQLBulkOperations SQLColAttribute SQLColumnPrivileges SQLColumns SQLConnect SQLDataSources SQLDescribeCol SQLDriverConnect SQLDrivers SQLExecDirect SQLExecute SQLFetch SQLFetchScroll SQLForeignKeys SQLGetConnectAttr SQLGetCursorName SQLGetData SQLGetDescField SQLGetInfo SQLGetStmtAttr SQLNativeSql SQLParamData SQLPrepare SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLPutData SQLSetConnectAttr SQLSetCursorName SQLSetDescField SQLSetDescRec SQLSetEnvAttr SQLSetStmtAttr SQLSetPos SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
HY091 | Identificador de campo de descriptor no válido | SQLColAttribute SQLGetDescField SQLSetDescField |
HY092 | Identificador de atributo o opción no válido | SQLAllocHandle QLBulkOperations SQLCopyDesc SQLDriverConnect SQLEndTran SQLFreeStmt SQLGetConnectAttr SQLGetEnvAttr QLParamData SQLSetConnectAttr SQLSetDescField SQLSetEnvAttr SQLSetPos SQLSetStmtAttr |
HY095 | Tipo de función fuera del intervalo | SQLGetFunctions |
HY096 | Tipo de información no válido | SQLGetInfo |
HY097 | Tipo de columna fuera del intervalo | SQLSpecialColumns |
HY098 | Tipo de ámbito fuera del intervalo | SQLSpecialColumns |
HY099 | Tipo que acepta valores NULL fuera del intervalo | SQLSpecialColumns |
HY100 | Tipo de opción de exclusividad fuera del intervalo | SQLStatistics |
HY101 | Tipo de opción de precisión fuera del intervalo | SQLStatistics |
HY103 | Código de recuperación no válido | SQLDataSources SQLDrivers |
HY104 | Precisión o valor de escala no válidos | SQLBindParameter |
HY105 | Tipo de parámetro no válido | SQLBindParameter SQLExecDirect SQLExecute SQLParamData SQLSetDescField |
HY106 | Capturar el tipo fuera del intervalo | SQLExtendedFetch SQLFetchScroll |
HY107 | Valor de fila fuera del intervalo | SQLExtendedFetch SQLFetch SQLFetchScroll SQLSetPos |
HY109 | Posición del cursor no válida | SQLExecDirect SQLExecute SQLGetData SQLGetStmtAttr SQLNativeSql SQLParamData SQLSetPos |
HY110 | Finalización de controladores no válida | SQLDriverConnect |
HY111 | Valor de marcador no válido | SQLExtendedFetch SQLFetchScroll |
HYC00 | Característica opcional no implementada | SQLBindCol SQLBindParameter SQLBulkOperations SQLColAttribute SQLColumnPrivileges SQLColumns SQLDriverConnect SQLEndTran SQLExecDirect SQLExecute SQLExtendedFetch SQLFetch SQLFetchScroll SQLForeignKeys SQLGetConnectAttr SQLGetData SQLGetEnvAttr SQLGetInfo SQLGetStmtAttr SQLGetTypeInfo SQLParamData SQLPrepare SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLSetConnectAttr SQLSetEnvAttr SQLSetPos SQLSetStmtAttr SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
HYT00 | Tiempo de espera agotado | SQLBrowseConnect SQLBulkOperations SQLColumnPrivileges SQLColumns SQLConnect SQLDriverConnect SQLExecDirect SQLExecute SQLExtendedFetch SQLForeignKeys SQLGetTypeInfo SQLParamData SQLPrepare SQLPrimaryKeys SQLProcedureColumns SQLProcedures SQLSetPos SQLSpecialColumns SQLStatistics SQLTablePrivileges SQLTables |
HYT01 | Se ha agotado el tiempo de espera de la conexión. | Todas las funciones ODBC excepto: SQLDrivers SQLDataSources SQLGetEnvAttr SQLSetEnvAttr |
IM001 | El controlador no admite esta función | Todas las funciones ODBC excepto: SQLAllocHandle SQLDataSources SQLDrivers SQLFreeHandle SQLGetFunctions |
IM002 | No se encontró el nombre del origen de datos y no se especificó ningún controlador predeterminado. | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM003 | No se pudo cargar el controlador especificado | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM004 | Error de SQLAllocHandle del controlador en SQL_HANDLE_ENV | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM005 | Error de SQLAllocHandle del controlador en SQL_HANDLE_DBC | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM006 | Error de SQLSetConnectAttr del controlador | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM007 | No se especificó ningún origen de datos o controlador; diálogo prohibido | SQLDriverConnect |
IM008 | Error en el cuadro de diálogo | SQLDriverConnect |
IM009 | No se puede cargar el archivo DLL de traducción | SQLBrowseConnect SQLConnect SQLDriverConnect SQLSetConnectAttr |
IM010 | Nombre del origen de datos demasiado largo | SQLBrowseConnect SQLConnect SQLDriverConnect |
IM011 | Nombre del controlador demasiado largo | SQLBrowseConnect SQLDriverConnect |
IM012 | Error de sintaxis de palabra clave DRIVER | SQLBrowseConnect SQLDriverConnect |
IM013 | Error de archivo de seguimiento | Todas las funciones ODBC. |
IM014 | Nombre no válido del DSN de archivo | SQLDriverConnect |
IM015 | Origen de datos de archivo dañado | SQLDriverConnect |