分享方式:


附錄 A:ODBC 錯誤碼

本主題討論 ODBC 3 的 SQLSTATE 值。 x . 如需 ODBC 3 的詳細資訊。 x SQLSTATE 值,請參閱 SQLSTATE 對應

SQLGetDiagRec SQLGetDiagField 會傳回 SQLSTATE 值,如 Open Group Data Management:結構化查詢語言(SQL),第 2 版(1995 年 3 月)。 SQLSTATE 值是包含五個字元的字串。 下表列出驅動程式可以針對 SQLGetDiagRec 傳回的 SQLSTATE 值。

針對 SQLSTATE 傳回的字元字串值是由兩個字元類別值所組成,後面接著三個字元的子類別值。 「01」 的類別值表示警告,並隨附SQL_SUCCESS_WITH_INFO的傳回碼。 「01」 以外的類別值,除了類別 「IM」之外,表示錯誤,並伴隨傳回值SQL_ERROR。 類別 「IM」 專屬於衍生自 ODBC 本身實作的警告和錯誤。 任何類別中的子類別值 「000」 表示該 SQLSTATE 沒有子類別。 類別和子類別值的指派是由 SQL-92 所定義。

注意

雖然函式的成功執行通常以傳回值SQL_SUCCESS表示,但 SQLSTATE 00000 也表示成功。

SQLSTATE 錯誤 可以從
01000 一般警告 除了下列所有 ODBC 函式:

SQLError

SQLGetDiagField

SQLGetDiagRec
01001 資料指標作業衝突 SQLExecDirect

SQLExecute

SQLParamData

SQLSetPos
01002 中斷連線錯誤 SQLDisconnect
01003 set 函式中排除的 Null 值 SQLExecDirect

SQLExecute

SQLParamData
01004 字串資料,右截斷 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 許可權未撤銷 SQLExecDirect

SQLExecute

SQLParamData
01007 未授與許可權 SQLExecDirect

SQLExecute

SQLParamData
01S00 不正確連接字串屬性 SQLBrowseConnect

SQLDriverConnec
01S01 資料列中的錯誤 SQLBulkOperations

SQLExtendedFetch

SQLSetPos
01S02 選項值已變更 SQLBrowseConnect

SQLConnect

SQLDriverConnect

SQLExecDirect

SQLExecute

SQLParamData

SQLPrepare

SQLSetConnectAttr

SQLSetDescField

SQLSetEnvAttr

SQLSetStmtAttr
01S06 嘗試在結果集傳回第一個資料列集之前擷取 SQLExtendedFetch

SQLFetchScroll
01S07 小數截斷 SQLBulkOperations

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

SQLGetData

SQLParamData

SQLSetPos
01S08 儲存檔案 DSN 時發生錯誤 SQLDriverConnect
01S09 不正確關鍵字 SQLDriverConnect
07001 參數數目錯誤 SQLExecDirect

SQLExecute
07002 COUNT 欄位不正確 SQLExecDirect

SQLExecute

SQLParamData
07005 備妥語句不是資料 指標規格 SQLColAttribute

SQLDescribeCol
07006 受限制的資料類型屬性違規 SQLBindCol

SQLBindParameter

SQLBulkOperations

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

SQLGetData

SQLParamData

SQLPutData

SQLSetPos
07009 不正確描述元索引 SQLBindCol

SQLBindParameter

SQLBulkOperations

SQLColAttribute

SQLDescribeCol

SQLDescribeParam

SQLFetch

SQLFetchScroll

SQLGetData

SQLGetDescField

SQLGetDescRec

SQLParamData

SQLSetDescField

SQLSetDescRecSQLSetPos
07S01 預設參數的使用無效 SQLExecDirect

SQLExecute

SQLParamData

SQLPutData
08001 用戶端無法建立連線 SQLBrowseConnect

SQLConnect

SQLDriverConnect
08002 使用中的連線名稱 SQLBrowseConnect

SQLConnect

SQLDriverConnect

SQLSetConnectAttr
08003 連線未開啟 SQLAllocHandle

SQLDisconnect

SQLEndTran

SQLGetConnectAttr

SQLGetInfo

SQLNativeSql

SQLSetConnectAttr
08004 伺服器拒絕連線 SQLBrowseConnect

SQLConnect

SQLDriverConnect
08007 交易期間的連線失敗 SQLEndTran
08S01 通訊連結失敗 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 插入值清單不符合資料行清單 SQLExecDirect

SQLPrepare
21S02 衍生資料表的程度不符合資料行清單 SQLBulkOperations

SQLExecDirect

SQLExecute

SQLParamData

SQLPrepare

SQLSetPos
22001 字串資料,右截斷 SQLBulkOperations

SQLExecDirect

SQLExecute

SQLFetch

SQLFetchScroll

SQLParamData

SQLPutData

SQLSetDescField

SQLSetPos
22002 需要指標變數,但未提供 SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

SQLGetData

SQLParamData
22003 超出範圍的數值 SQLBulkOperations

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

SQLGetData

SQLGetInfo

SQLParamData

SQLPutData

SQLSetPos
22007 不正確日期時間格式 SQLBulkOperations

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

SQLGetData

SQLParamData

SQLPutData

SQLSetPos
22008 日期時間欄位溢位 SQLBulkOperations

SQLExecDirect

QLParamData

SQLPutData
22012 除以零 SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

SQLGetData

SQLPutData
22015 間隔欄位溢位 SQLBulkOperations

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

SQLGetData

SQLParamData

SQLPutData

SQLSetPos
22018 轉換規格的字元值無效 SQLBulkOperations

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLFetch

SQLFetchScroll

SQLGetData

SQLParamData

SQLPutData

SQLSetPos
22019 不正確逸出字元 SQLExecDirect

SQLExecute

SQLPrepare
22025 不正確逸出序列 SQLExecDirect

SQLExecute

SQLPrepare
22026 字串資料,長度不符 SQLParamData
23000 完整性條件約束違規 SQLBulkOperations

SQLExecDirect

SQLExecute

SQLParamData

SQLSetPos
24000 不正確資料指標狀態 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 不正確交易狀態 SQLDisconnect
25S01 交易狀態 SQLEndTran
25S02 交易仍在使用中 SQLEndTran
25S03 交易已回復 SQLEndTran
28000 授權規格無效 SQLBrowseConnect

SQLConnect

SQLDriverConnect
34000 不正確資料指標名稱 SQLExecDirect

SQLPrepare

SQLSetCursorName
3C000 重複的資料指標名稱 SQLSetCursorName
3D000 不正確目錄名稱 SQLExecDirect

SQLPrepare

SQLSetConnectAttr
3F000 不正確架構名稱 SQLExecDirect

SQLPrepare
40001 序列化失敗 SQLBulkOperations

SQLColumnPrivileges

SQLColumns

SQLEndTran

SQLExecDirect

SQLExecute

SQLFetch

SQLFetchScroll

SQLForeignKeys

SQLGetTypeInfo

SQLMoreResults

SQLParamData

SQLPrimaryKeys

SQLProcedureColumns

SQLProcedures

SQLSetPos

SQLSpecialColumns

SQLStatistics

SQLTablePrivileges

SQLTables
40002 完整性條件約束違規 SQLEndTran
40003 語句完成未知 SQLBulkOperations

SQLColumnPrivileges

SQLColumns

SQLExecDirect

SQLExecute

SQLFetch

SQLFetchScroll

SQLForeignKeys

SQLGetTypeInfo

SQLMoreResults

SQLPrimaryKeys

SQLProcedureColumns

SQLProcedures

SQLParamData

SQLSetPos

SQLSpecialColumns

SQLStatistics

SQLTablePrivileges

SQLTables
42000 語法錯誤或存取違規 SQLBulkOperations

SQLExecDirect

SQLExecute

SQLParamData

SQLPrepare

SQLSetPos
42S01 基表或檢視已經存在 SQLExecDirect

SQLPrepare
42S02 找不到基表或檢視表 SQLExecDirect

SQLPrepare
42S11 索引已經存在 SQLExecDirect

SQLPrepare
42S12 找不到索引 SQLExecDirect

SQLPrepare
42S21 資料行已經存在 SQLExecDirect

SQLPrepare
42S22 找不到資料行 SQLExecDirect

SQLPrepare
44000 WITH CHECK OPTION 違規 SQLBulkOperations

SQLExecDirect

SQLExecute

SQLParamData

SQLSetPos
HY000 一般錯誤 除了下列所有 ODBC 函式:

SQLError

SQLGetDiagField

SQLGetDiagRec
HY001 記憶體配置錯誤 除了下列所有 ODBC 函式:

SQLError

SQLGetDiagField

SQLGetDiagRec
HY003 不正確應用程式緩衝區類型 SQLBindCol

SQLBindParameter

SQLGetData
HY004 不正確 SQL 資料類型 SQLBindParameter

SQLGetTypeInfo
HY007 未備妥相關聯的語句 SQLCopyDesc

SQLGetDescField

SQLGetDescRec
HY008 作業已取消 可以非同步處理的所有 ODBC 函式:

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 不正確 Null 指標使用 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 函式順序錯誤 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 無法立即設定屬性 SQLBulkOperations

SQLParamData

QLSetPos

SQLSetStmtAttr
HY012 不正確交易作業程式碼 SQLEndTran
HY013 記憶體管理錯誤 除了下列所有 ODBC 函式:

SQLGetDiagField

SQLGetDiagRec
HY014 超過控制碼數目的限制 SQLAllocHandle
HY015 沒有可用的資料指標名稱 SQLGetCursorName
HY016 無法修改實作資料列描述元 SQLCopyDesc

SQLSetDescField

SQLSetDescRec
HY017 自動設定描述元控制碼的使用無效 SQLFreeHandle

SQLSetStmtAttr
HY018 伺服器拒絕取消要求 SQLCancel
HY019 以片段傳送的非字元和非二進位資料 SQLPutData
HY020 嘗試串連 Null 值 SQLPutData
HY021 不一致的描述元資訊 SQLBindParameter

SQLCopyDesc

SQLGetDescField

SQLSetDescField

SQLSetDescRec
HY024 不正確屬性值 SQLSetConnectAttr

SQLSetEnvAttr

SQLSetStmtAttr
HY090 不正確字串或緩衝區長度 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 不正確描述元欄位識別碼 SQLColAttribute

SQLGetDescField

SQLSetDescField
HY092 不正確屬性/選項識別碼 SQLAllocHandle

QLBulkOperations

SQLCopyDesc

SQLDriverConnect

SQLEndTran

SQLFreeStmt

SQLGetConnectAttr

SQLGetEnvAttr

QLParamData

SQLSetConnectAttr

SQLSetDescField

SQLSetEnvAttr

SQLSetPos

SQLSetStmtAttr
HY095 超出範圍的函式類型 SQLGetFunctions
HY096 不正確資訊類型 SQLGetInfo
HY097 超出範圍的資料行類型 SQLSpecialColumns
HY098 範圍類型超出範圍 SQLSpecialColumns
HY099 可為 Null 的類型超出範圍 SQLSpecialColumns
HY100 超出範圍的唯一性選項類型 SQLStatistics
HY101 精確度選項類型超出範圍 SQLStatistics
HY103 不正確擷取程式 SQLDataSources

SQLDrivers
HY104 不正確有效位數或小數位數值 SQLBindParameter
HY105 不正確參數類型 SQLBindParameter

SQLExecDirect

SQLExecute

SQLParamData

SQLSetDescField
HY106 擷取超出範圍的類型 SQLExtendedFetch

SQLFetchScroll
HY107 超出範圍的資料列值 SQLExtendedFetch

SQLFetch

SQLFetchScroll

SQLSetPos
HY109 不正確資料指標位置 SQLExecDirect

SQLExecute

SQLGetData

SQLGetStmtAttr

SQLNativeSql

SQLParamData

SQLSetPos
HY110 不正確驅動程式完成 SQLDriverConnect
HY111 不正確書簽值 SQLExtendedFetch

SQLFetchScroll
HYC00 未實作選擇性功能 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 逾時已超過 SQLBrowseConnect

SQLBulkOperations

SQLColumnPrivileges

SQLColumns

SQLConnect

SQLDriverConnect

SQLExecDirect

SQLExecute

SQLExtendedFetch

SQLForeignKeys

SQLGetTypeInfo

SQLParamData

SQLPrepare

SQLPrimaryKeys

SQLProcedureColumns

SQLProcedures

SQLSetPos

SQLSpecialColumns

SQLStatistics

SQLTablePrivileges

SQLTables
HYT01 已超過連線逾時 除了下列所有 ODBC 函式:

SQLDrivers

SQLDataSources

SQLGetEnvAttr

SQLSetEnvAttr
IM001 驅動程式不支援此函式 除了下列所有 ODBC 函式:

SQLAllocHandle

SQLDataSources

SQLDrivers

SQLFreeHandle

SQLGetFunctions
IM002 找不到資料來源名稱,也沒有指定預設驅動程式 SQLBrowseConnect

SQLConnect

SQLDriverConnect
IM003 無法載入指定的驅動程式 SQLBrowseConnect

SQLConnect

SQLDriverConnect
IM004 SQL_HANDLE_ENV上的驅動程式 SQLAllocHandle 失敗 SQLBrowseConnect

SQLConnect

SQLDriverConnect
IM005 SQL_HANDLE_DBC上的驅動程式 SQLAllocHandle 失敗 SQLBrowseConnect

SQLConnect

SQLDriverConnect
IM006 驅動程式的 SQLSetConnectAttr 失敗 SQLBrowseConnect

SQLConnect

SQLDriverConnect
IM007 未指定資料來源或驅動程式;對話方塊禁止 SQLDriverConnect
IM008 對話方塊失敗 SQLDriverConnect
IM009 無法載入翻譯 DLL SQLBrowseConnect

SQLConnect

SQLDriverConnect

SQLSetConnectAttr
IM010 資料來源名稱太長 SQLBrowseConnect

SQLConnect

SQLDriverConnect
IM011 驅動程式名稱太長 SQLBrowseConnect

SQLDriverConnect
IM012 DRIVER 關鍵字語法錯誤 SQLBrowseConnect

SQLDriverConnect
IM013 追蹤檔案錯誤 所有 ODBC 函式。
IM014 不正確檔案 DSN 名稱 SQLDriverConnect
IM015 損毀的檔案資料來源 SQLDriverConnect