ODBC Error Codes

Appendix A: ODBC Error Codes

This topic discusses SQLSTATE values for ODBC 3.x. For more information on ODBC 3.x SQLSTATE values, see SQLSTATE Mappings.

SQLGetDiagRec or SQLGetDiagField returns SQLSTATE values as defined by Open Group 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 value 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.

NoteNote

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

SQLNative

Sql SQLParamData

SQLPutData

SQLSetCursorName

01006

Privilege not revoked

SQLExecDirect

SQLExecute

SQLParamData

01007

Privilege not granted

SQLExecDirect

SQLExecute

SQLParamData

01S00

Invalid connection string attribute

SQLBrowseConnect

SQLDriverConnec

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

07001

Wrong number of parameters

SQLExecDirect

SQLExecute

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

SQLDescribeParam

SQLFetch

SQLFetchScroll

SQLGetData

SQLGetDescField

SQLGetDescRec

SQLParamData

SQLSetDescField

SQLSetDescRecSQLSetPos

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 not open

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

QLParamData

SQLPutData

22012

Division by zero

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

SQLGetData

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

40002

Integrity constraint violation

SQLEndTran

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:

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

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

SQLSetEnvAttr

SQLSetDescRec

SQLSetPos

SQLSetStmtAttr

SQLSpecialColumns

SQLStatistics

SQLTablePrivileges

SQLTables

HY011

Attribute cannot be set now

SQLBulkOperations

SQLParamData

QLSetPos

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

QLBulkOperations

SQLCopyDesc

SQLDriverConnect

SQLEndTran

SQLFreeStmt

SQLGetConnectAttr

SQLGetEnvAttr

QLParamData

SQLSetConnectAttr

SQLSetDescField

SQLSetEnvAttr

SQLSetPos

SQLSetStmtAttr

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

SQLDriverConnec

转载于:https://www.cnblogs.com/bulemaple/articles/3474380.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值