Contents|Index|Previous|Next

ODBC Error Codes

SQLGetDiagRec or SQLGetDiagField returns SQLSTATE values as defined by X/Open Data Management: Structured Query Language (SQL), Version 2 (March 1995). SQLSTATE values are strings that contain five characters. The following table lists SQLSTATE values that a driver can return for SQLGetDiagRec.

The character string value returned for an SQLSTATE consists of a two-character class value followed by a three-character subclass value. A class value of 01” indicates a warning and is accompanied by a return code of SQL_SUCCESS_WITH_INFO. Class values other than “01,” except for the class “IM,” indicate an error and are accompanied by a return code of SQL_ERROR. The class “IM” is specific to warnings and errors that derive from the implementation of ODBC itself. The subclass value “000” in any class indicates that there is no subclass for that SQLSTATE. The assignment of class and subclass values is defined by SQL-92.

Note Although successful execution of a function is normally indicated by a return value of SQL_SUCCESS, the SQLSTATE 00000 also indicates success.

SQLSTATE
Error
Can be returned from



01000
General warning
All ODBC functions except:
SQLError
SQLGetDiagField
SQLGetDiagRec



01001
Cursor operation conflict
SQLExecDirect
SQLExecute
SQLParamData
SQLSetPos



01002
Disconnect error
SQLDisconnect



01003
NULL value eliminated in set function
SQLExecDirect
SQLExecute
SQLParamData



01004
String data, right truncated
SQLBrowseConnect
SQLBulkOperations
SQLColAttribute
SQLDataSources
SQLDescribeCol
SQLDriverConnect
SQLDrivers

SQLExecDirect
SQLExecute
SQLExtendedFetch
SQLFetch
SQLFetchScroll
SQLGetConnectAttr
SQLGetCursorName
SQLGetData
SQLGetDescField
SQLGetDescRec
SQLGetEnvAttr
SQLGetInfo
SQLGetStmtAttr
SQLNativeSql
SQLParamData
SQLPutData
SQLSetCursorName



01006
Privilege not revoked
SQLExecDirect
SQLExecute
SQLParamData



01007
Privilege not granted
SQLExecDirect
SQLExecute
SQLParamData



01S00
Invalid connection string attribute
SQLBrowseConnect
SQLDriverConnect



01S01
Error in row
SQLBulkOperations
SQLExtendedFetch
SQLSetPos



01S02
Option value changed
SQLBrowseConnect
SQLConnect
SQLDriverConnect
SQLExecDirect
SQLExecute
SQLParamData
SQLPrepare
SQLSetConnectAttr
SQLSetDescField
SQLSetEnvAttr
SQLSetStmtAttr



01S06
Attempt to fetch before the result set returned the first rowset
SQLExtendedFetch
SQLFetchScroll



01S07
Fractional truncation
SQLBulkOperations
SQLExecDirect
SQLExecute
SQLExtendedFetch
SQLFetch
SQLFetchScroll
SQLGetData
SQLParamData
SQLSetPos



01S08
Error saving File DSN
SQLDriverConnect



01S09
Invalid keyword
SQLDriverConnect



07002
COUNT field incorrect
SQLExecDirect
SQLExecute
SQLParamData



07005
Prepared statement not a cursor-specification
SQLColAttribute
SQLDescribeCol



07006
Restricted data type attribute violation
SQLBindCol
SQLBindParameter
SQLBulkOperations
SQLExecDirect
SQLExecute
SQLExtendedFetch
SQLFetch
SQLFetchScroll
SQLGetData
SQLParamData
SQLPutData
SQLSetPos



07009
Invalid descriptor index
SQLBindCol
SQLBindParameter
SQLBulkOperations
SQLColAttribute
SQLDescribeCol
SQLFetch
SQLFetchScroll
SQLGetData
SQLGetDescField
SQLGetDescRec
SQLParamData
SQLSetDescField

SQLSetDescRec
SQLSetPos



07S01
Invalid use of default parameter
SQLExecDirect
SQLExecute
SQLParamData
SQLPutData



08001
Client unable to establish connection
SQLBrowseConnect
SQLConnect
SQLDriverConnect



08002
Connection name in use
SQLBrowseConnect
SQLConnect
SQLDriverConnect
SQLSetConnectAttr



08003
Connection does not exist
SQLAllocHandle
SQLDisconnect
SQLEndTran
SQLGetConnectAttr
SQLGetInfo
SQLNativeSql
SQLSetConnectAttr



08004
Server rejected the connection
SQLBrowseConnect
SQLConnect
SQLDriverConnect



08007
Connection failure during transaction
SQLEndTran



08S01
Communication link failure
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
Insert value list does not match column list
SQLExecDirect
SQLPrepare



21S02
Degree of derived table does not match column list
SQLBulkOperations
SQLExecDirect
SQLExecute
SQLParamData
SQLPrepare
SQLSetPos



22001
String data, right truncated
SQLBulkOperations
SQLExecDirect
SQLExecute
SQLFetch
SQLFetchScroll
SQLParamData
SQLPutData
SQLSetDescField
SQLSetPos



22002
Indicator variable required but not supplied
SQLExecDirect
SQLExecute
SQLExtendedFetch
SQLFetch
SQLFetchScroll
SQLGetData
SQLParamData



22003
Numeric value out of range
SQLBulkOperations
SQLExecDirect
SQLExecute
SQLExtendedFetch
SQLFetch
SQLFetchScroll
SQLGetData
SQLGetInfo
SQLParamData
SQLPutData
SQLSetPos



22007
Invalid datetime format
SQLBulkOperations
SQLExecDirect
SQLExecute
SQLExtendedFetch
SQLFetch
SQLFetchScroll
SQLGetData
SQLParamData
SQLPutData
SQLSetPos



22008
Datetime field overflow
SQLBulkOperations
SQLExecDirect
SQLExecute
SQLParamData
SQLPutData



22012
Division by zero
SQLExecDirect
SQLExecute
SQLExtendedFetch
SQLFetch
SQLFetchScroll
SQLGetData
SQLParamData
SQLPutData



22015
Interval field overflow
SQLBulkOperations
SQLExecDirect
SQLExecute
SQLExtendedFetch
SQLFetch
SQLFetchScroll
SQLGetData
SQLParamData
SQLPutData
SQLSetPos



22018
Invalid character value for cast specification
SQLBulkOperations
SQLExecDirect
SQLExecute
SQLExtendedFetch
SQLFetch
SQLFetchScroll
SQLGetData
SQLParamData
SQLPutData
SQLSetPos



22019
Invalid escape character
SQLExecDirect
SQLExecute
SQLPrepare



22025
Invalid escape sequence
SQLExecDirect
SQLExecute
SQLPrepare



22026
String data, length mismatch
SQLParamData



23000
Integrity constraint violation
SQLBulkOperations
SQLExecDirect
SQLExecute
SQLParamData
SQLSetPos



24000
Invalid cursor state
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
Invalid transaction state
SQLDisconnect



25S01
Transaction state
SQLEndTran



25S02
Transaction is still active
SQLEndTran



25S03
Transaction is rolled back
SQLEndTran



28000
Invalid authorization specification
SQLBrowseConnect
SQLConnect
SQLDriverConnect



34000
Invalid cursor name
SQLExecDirect
SQLPrepare
SQLSetCursorName



3C000
Duplicate cursor name
SQLSetCursorName



3D000
Invalid catalog name
SQLExecDirect
SQLPrepare
SQLSetConnectAttr



3F000
Invalid schema name
SQLExecDirect
SQLPrepare



40001
Serialization failure
SQLBulkOperations
SQLColumnPrivileges
SQLColumns
SQLEndTran
SQLExecDirect
SQLExecute
SQLFetch
SQLFetchScroll
SQLForeignKeys
SQLGetTypeInfo
SQLMoreResults
SQLParamData
SQLPrimaryKeys
SQLProcedureColumns
SQLProcedures
SQLSetPos
SQLSpecialColumns
SQLStatistics
SQLTablePrivileges
SQLTables



40003
Statement completion unknown
SQLBulkOperations
SQLColumnPrivileges
SQLColumns
SQLExecDirect
SQLExecute
SQLFetch
SQLFetchScroll
SQLForeignKeys
SQLGetTypeInfo
SQLMoreResults
SQLPrimaryKeys
SQLProcedureColumns
SQLProcedures
SQLParamData
SQLSetPos
SQLSpecialColumns
SQLStatistics
SQLTablePrivileges
SQLTables



42000
Syntax error or access violation
SQLBulkOperations
SQLExecDirect
SQLExecute
SQLParamData
SQLPrepare
SQLSetPos



42S01
Base table or view already exists
SQLExecDirect
SQLPrepare



42S02
Base table or view not found
SQLExecDirect
SQLPrepare



42S11
Index already exists
SQLExecDirect
SQLPrepare



42S12
Index not found
SQLExecDirect
SQLPrepare



42S21
Column already exists
SQLExecDirect
SQLPrepare



42S22
Column not found
SQLExecDirect
SQLPrepare



44000
WITH CHECK OPTION violation
SQLBulkOperations
SQLExecDirect
SQLExecute
SQLParamData
SQLSetPos



HY000
General error
All ODBC functions except:
SQLError
SQLGetDiagField
SQLGetDiagRec



HY001
Memory allocation error
All ODBC functions except:
SQLError
SQLGetDiagField
SQLGetDiagRec



HY003
Invalid application buffer type
SQLBindCol
SQLBindParameter
SQLGetData



HY004
Invalid SQL data type
SQLBindParameter
SQLGetTypeInfo



HY007
Associated statement is not prepared
SQLCopyDesc
SQLGetDescField
SQLGetDescRec



HY008
Operation canceled
All ODBC functions that can be processed asynchronously:
SQLBulkOperations
SQLColAttribute
SQLColumnPrivileges
SQLColumns
SQLDescribeCol
SQLDescribeParam
SQLExecDirect
SQLExecute
SQLExtendedFetch
SQLFetch
SQLFetchScroll
SQLForeignKeys
SQLGetData
SQLGetTypeInfo
SQLMoreResults
SQLNumParams
SQLNumResultCols
SQLParamData
SQLPrepare
SQLPrimaryKeys
SQLProcedureColumns
SQLProcedures
SQLPutData
SQLSetPos
SQLSpecialColumns
SQLStatistics
SQLTablePrivileges
SQLTables



HY009
Invalid use of null pointer
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
Function sequence error
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
SQLSetDescRec
SQLSetPos
SQLSetStmtAttr
SQLSpecialColumns
SQLStatistics
SQLTablePrivileges
SQLTables



HY011
Attribute cannot be set now
SQLBulkOperations
SQLParamData
SQLSetConnectAttr
SQLSetEnvAttr
SQLSetPos
SQLSetStmtAttr



HY012
Invalid transaction operation code
SQLEndTran



HY013
Memory management error
All ODBC functions except:
SQLGetDiagField
SQLGetDiagRec



HY014
Limit on the number of handles exceeded
SQLAllocHandle



HY015
No cursor name available
SQLGetCursorName



HY016
Cannot modify an implementation row descriptor
SQLCopyDesc
SQLSetDescField
SQLSetDescRec



HY017
Invalid use of an automatically allocated descriptor handle
SQLFreeHandle
SQLSetStmtAttr



HY018
Server declined cancel request
SQLCancel



HY019
Non-character and non-binary data sent in pieces
SQLPutData



HY020
Attempt to concatenate a null value
SQLPutData



HY021
Inconsistent descriptor information
SQLBindParameter
SQLCopyDesc
SQLGetDescField
SQLSetDescField
SQLSetDescRec



HY024
Invalid attribute value
SQLSetConnectAttr
SQLSetEnvAttr
SQLSetStmtAttr



HY090
Invalid string or buffer length
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
Invalid descriptor field identifier
SQLColAttribute
SQLGetDescField
SQLSetDescField



HY092
Invalid attribute/option identifier
SQLAllocHandle
SQLBulkOperations
SQLCopyDesc
SQLDriverConnect
SQLEndTran
SQLFreeStmt
SQLGetConnectAttr
SQLGetEnvAttr
SQLGetStmtAttr
SQLParamData
SQLSetConnectAttr
SQLSetDescField
SQLSetEnvAttr
SQLSetPos
SQLSetStmtAttr



HY093
Invalid parameter number
SQLDescribeParam



HY095
Function type out of range
SQLGetFunctions



HY096
Invalid information type
SQLGetInfo



HY097
Column type out of range
SQLSpecialColumns



HY098
Scope type out of range
SQLSpecialColumns



HY099
Nullable type out of range
SQLSpecialColumns



HY100
Uniqueness option type out of range
SQLStatistics



HY101
Accuracy option type out of range
SQLStatistics



HY103
Invalid retrieval code
SQLDataSources
SQLDrivers



HY104
Invalid precision or scale value
SQLBindParameter



HY105
Invalid parameter type
SQLBindParameter
SQLExecDirect
SQLExecute
SQLParamData
SQLSetDescField



HY106
Fetch type out of range
SQLExtendedFetch
SQLFetchScroll



HY107
Row value out of range
SQLExtendedFetch
SQLFetch
SQLFetchScroll
SQLSetPos



HY109
Invalid cursor position
SQLExecDirect
SQLExecute
SQLGetData
SQLGetStmtAttr
SQLNativeSql
SQLParamData
SQLSetPos



HY110
Invalid driver completion
SQLDriverConnect



HY111
Invalid bookmark value
SQLExtendedFetch
SQLFetchScroll



HYC00
Optional feature not implemented
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
Timeout expired
SQLBrowseConnect
SQLBulkOperations
SQLColumnPrivileges
SQLColumns
SQLConnect
SQLDriverConnect
SQLExecDirect
SQLExecute
SQLExtendedFetch
SQLForeignKeys
SQLGetTypeInfo
SQLParamData
SQLPrepare
SQLPrimaryKeys
SQLProcedureColumns
SQLProcedures
SQLSetPos
SQLSpecialColumns
SQLStatistics
SQLTablePrivileges
SQLTables



HYT01
Connection timeout expired
All ODBC functions except:
SQLDrivers
SQLDataSources
SQLGetEnvAttr
SQLSetEnvAttr



IM001
Driver does not support this function
All ODBC functions except:
SQLAllocHandle
SQLDataSources
SQLDrivers
SQLFreeHandle
SQLGetFunctions



IM002
Data source name not found and no default driver specified
SQLBrowseConnect
SQLConnect
SQLDriverConnect



IM003
Specified driver could not be loaded
SQLBrowseConnect
SQLConnect
SQLDriverConnect



IM004
Driver’s SQLAllocHandle on SQL_HANDLE_ENV failed
SQLBrowseConnect
SQLConnect
SQLDriverConnect



IM005
Driver’s SQLAllocHandle on SQL_HANDLE_DBC failed
SQLBrowseConnect
SQLConnect
SQLDriverConnect



IM006
Driver’s SQLSetConnectAttr failed
SQLBrowseConnect
SQLConnect
SQLDriverConnect



IM007
No data source or driver specified; dialog prohibited
SQLDriverConnect



IM008
Dialog failed
SQLDriverConnect



IM009
Unable to load translation DLL
SQLBrowseConnect
SQLConnect
SQLDriverConnect
SQLSetConnectAttr



IM010
Data source name too long
SQLBrowseConnect
SQLConnect
SQLDriverConnect



IM011
Driver name too long
SQLBrowseConnect
SQLDriverConnect



IM012
DRIVER keyword syntax error
SQLBrowseConnect
SQLDriverConnect



IM013
Trace file error
All ODBC functions



IM014
Invalid name of File DSN
SQLDriverConnect



IM015
Corrupt file data source
SQLDriverConnect