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