語句轉換
ODBC 語句具有下列狀態。
State | 描述 |
---|---|
S0 | 未配置語句。 (線上狀態必須是 C4、C5 或 C6。如需詳細資訊,請參閱 連線轉換 。) |
S1 | Allocated 語句。 |
S2 | 備妥的語句。 將不會建立任何結果集。 |
S3 | 備妥的語句。 將會建立 (可能為空白) 的結果集。 |
S4 | 語句已執行,且未建立任何結果集。 |
S5 | 已執行語句,並已建立一個 (可能空白) 的結果集。 資料指標會開啟並放置在結果集的第一個資料列之前。 |
S6 | 以 SQLFetch 或 SQLFetchScroll 定位的資料指標。 |
S7 | 使用 SQLExtendedFetch 定位 的資料指標。 |
S8 | 函式需要資料。 尚未呼叫 SQLParamData 。 |
S9 | 函式需要資料。 尚未呼叫 SQLPutData 。 |
S10 | 函式需要資料。 已呼叫 SQLPutData 。 |
S11 | 仍在執行中。 在以非同步方式執行的函式傳回SQL_STILL_EXECUTING之後,語句會處於這個狀態。 當接受語句控制碼的任何函式正在執行時,語句會暫時處於這個狀態。 除了 SQLCancel 的狀態資料表之外,任何州資料表 都不會顯示 S11 的暫存住所。 雖然語句暫時處於 S11 狀態,但可以從另一個執行緒呼叫 SQLCancel 來取消函式。 |
S12 | 非同步執行已取消。 在 S12 中,應用程式必須呼叫已取消的函式,直到傳回SQL_STILL_EXECUTING以外的值為止。 只有在函式傳回SQL_ERROR和 SQLSTATE HY008(作業已取消)時,函式才會成功取消。 如果傳回任何其他值,例如SQL_SUCCESS,取消作業就會失敗,且函式正常執行。 |
狀態 S2 和 S3 稱為備妥狀態、將 S5 到 S7 作為資料指標狀態、將 S8 到 S10 表示為需要資料狀態,而 S11 和 S12 則表示非同步狀態。 在每一個群組中,只有在群組中每個狀態不同時,才會個別顯示轉換;在大部分情況下,每個群組中每個狀態的轉換都相同。
下表顯示每個 ODBC 函式如何影響語句狀態。
SQLAllocHandle
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
--[1], [5], [6] | --[5] | --[5] | --[5] | --[5] | --[5] | --[5] |
--[2], [5] | --[5] | --[5] | --[5] | --[5] | --[5] | --[5] |
S1[3] | --[5] | --[5] | --[5] | --[5] | --[5] | --[5] |
--[4], [5] | --[5] | --[5] | --[5] | --[5] | --[5] | --[5] |
[1] 當 HandleType SQL_HANDLE_ENV時 ,此資料列會顯示轉換。
[2] 當 HandleType 已SQL_HANDLE_DBC時 ,此資料列會顯示轉換。
[3] 當 HandleType SQL_HANDLE_STMT時 ,此資料列會顯示轉換。
[4] 當 HandleType SQL_HANDLE_DESC時 ,此資料列會顯示轉換。
[5] 使用 OutputHandlePtr 呼叫 SQLAllocHandle ,指出有效的控制碼會覆寫該控制碼,而不考慮該控制碼先前的內容,而且可能會導致 ODBC 驅動程式發生問題。 ODBC 應用程式程式設計不正確,使用針對 *OutputHandlePtr 定義的 相同應用程式變數來呼叫 SQLAllocHandle 兩次,而不需呼叫 SQLFreeHandle 來釋放控制碼,然後再重新配置它。 以這種方式覆寫 ODBC 控制碼可能會導致 ODBC 驅動程式的行為或錯誤不一致。
SQLBindCol
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
Ih | -- | -- | -- | -- | HY010 | HY010 |
SQLBindParameter
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
Ih | -- | -- | -- | -- | HY010 | HY010 |
SQLBrowseConnect、SQLConnect 和 SQLDriverConnect
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
08002 | 08002 | 08002 | 08002 | 08002 | 08002 | 08002 |
SQLBulkOperations
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
Ih | HY010 | HY010 | 24000 | 請參閱下一個表格 | HY010 | NS [c] HY010 o |
SQLBulkOperations (資料指標狀態)
S5 Opened |
S6 SQLFetch 或 SQLFetchScroll |
S7 SQLExtendedFetch |
---|---|---|
-- [s] S8 [d] S11 [x] | -- [s] S8 [d] S11 [x] | HY010 |
SQLCancel
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
Ih | -- | -- | -- | -- | S1[1] S2 [nr] 和 [2] S3 [r]和 [2] S5[3] 和 [5] S6([3] 或 [4]) 和 [6] S7[4] 和 [7] | 請參閱下一個表格 |
[1] SQLExecDirect 傳回SQL_NEED_DATA。
[2] SQLExecute 傳回SQL_NEED_DATA。
[3] 傳回的 SQLBulkOperations SQL_NEED_DATA。
[4] SQL_NEED_DATA傳回的 SQLSetPos 。
[5] 未呼叫 SQLFetch、 SQLFetchScroll 或 SQLExtendedFetch 。
[6] 已呼叫 SQLFetch 或 SQLFetchScroll 。
[7] 已呼叫 SQLExtendedFetch 。
SQLCancel (非同步狀態)
S11 仍在執行中 |
S12 已取消 Asynch |
---|---|
NS[1] S12[2] | S12 |
[1] 語句在執行函式時暫時處於 S11 狀態。 SQLCancel 是從不同的執行緒呼叫。
[2] 語句處於狀態 S11,因為呼叫非同步傳回的函式SQL_STILL_EXECUTING。
SQLCloseCursor
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
Ih | 24000 | 24000 | 24000 | S1 [np] S3 [p] | HY010 | HY010 |
SQLColAttribute
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
Ih | HY010 | 請參閱下一個表格 | 24000 | -- [s] S11 [x] | HY010 | NS [c] HY010 o |
SQLColAttribute (準備狀態)
S2 沒有結果 |
S3 結果 |
---|---|
--[1] 07005[2] | -- [s] S11 x |
[1] FieldIdentifier 已SQL_DESC_COUNT。
[2] FieldIdentifier 未SQL_DESC_COUNT。
SQLColumnPrivileges、SQLColumns、SQLForeignKeys、SQLGetTypeInfo、SQLPrimaryKeys、SQLProcedureColumns、SQLProcedures、SQLSpecialColumns、SQLStatistics、SQLTablePrivileges 和 SQLTables
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
(IH) | S5 [s] S11 [x] | S1 [e] S5 [s] S11 [x] | S1 [e] 和 [1] S5 [s] 和 [1] S11 [x] 和 [1] 24000[2] | 請參閱下一個表格 | HY010 | NS [c] HY010 o |
[1] 目前的結果是最後或唯一的結果,或沒有目前的結果。 如需多個結果的詳細資訊,請參閱 多個結果 。
[2] 目前的結果不是最後一個結果。
SQLColumnPrivileges、SQLColumns、SQLForeignKeys、SQLGetTypeInfo、SQLPrimaryKeys、SQLProcedureColumns、SQLProcedures、SQLSpecialColumns、SQLStatistics、SQLTablePrivileges 和 SQLTables (資料指標狀態)
S5 Opened |
S6 SQLFetch 或 SQLFetchScroll |
S7 SQLExtendedFetch |
---|---|---|
24000 | 24000[1] | 24000 |
[1] 如果 SQLFetch 或 SQLFetchScroll 尚未傳回SQL_NO_DATA,而且如果 SQLFetch 或 SQLFetchScroll 傳回SQL_NO_DATA,驅動程式就會傳回此錯誤。
SQLCopyDesc
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
IH[1] | -- | -- | -- | -- | HY010 | NS [c] 和 [3] HY010 [o] 或 [4] |
IH[2] | HY010 | 請參閱下一個表格 | 24000 | -- [s] S11 x | HY010 | NS [c] 和 [3] HY010 [o] 或 [4] |
[1] 當 SourceDescHandle 引數為 ARD、APD 或 IPD 時 ,此資料列會顯示轉換。
[2] 當 SourceDescHandle 引數為 IRD 時 ,此資料列會顯示轉換。
[3] SourceDescHandle 和 TargetDescHandle 引數與非同步執行的 SQLCopyDesc 函 式相同 。
[4] SourceDescHandle 引數或 TargetDescHandle 引數 (或兩者)都與 非同步執行的 SQLCopyDesc 函式不同。
SQLCopyDesc (準備狀態)
S2 沒有結果 |
S3 結果 |
---|---|
24000[1] | -- [s] S11 [x] |
[1]當 SourceDescHandle 引數是 IRD 時, 此資料列會顯示轉換。
SQLDataSources 和 SQLDrivers
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- | -- |
SQLDescribeCol
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
Ih | HY010 | 請參閱下一個表格 | 24000 | -- [s] S11 [x] | HY010 | NS [c] HY010 o |
SQLDescribeCol (準備狀態)
S2 沒有結果 |
S3 結果 |
---|---|
07005 | -- [s] S11 [x] |
SQLDescribeParam
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
Ih | HY010 | -- [s] S11 [x] | HY010 | HY010 | HY010 | NS [c] HY010 [o] |
SQLDisconnect
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
--[1] | S0[1] | S0[1] | S0[1] | S0[1] | (HY010) | (HY010) |
[1] 呼叫 SQLDisconnect 會釋放與連線相關聯的所有語句。 此外,這會將線上狀態傳回 C2;連接狀態必須是 C4,語句狀態為 S0。
SQLEndTran
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
-- | -- | --[2] 或 [3] S1[1] | --[3] S1 [np] 和 ([1] 或 [2]) S1 [p] 和 [1] S2 [p] 和 [2] | --[3] S1 [np] 和 ([1] 或 [2]) S1 [p] 和 [1] S3 [p] 和 [2] | (HY010) | (HY010) |
[1] CompletionType 引數是SQL_COMMIT ,而 SQLGetInfo 會針對SQL_CURSOR_COMMIT_BEHAVIOR資訊類型傳回SQL_CB_DELETE,或者 CompletionType 引數是SQL_ROLLBACK ,而 SQLGetInfo 會針對SQL_CURSOR_ROLLBACK_BEHAVIOR資訊類型傳回SQL_CB_DELETE。
[2] CompletionType 引數是SQL_COMMIT ,而 SQLGetInfo 會針對SQL_CURSOR_COMMIT_BEHAVIOR資訊類型傳回SQL_CB_CLOSE,或者 CompletionType 引數 SQL_ROLLBACK,而 SQLGetInfo 會傳回SQL_CURSOR_ROLLBACK_BEHAVIOR資訊類型的SQL_CB_CLOSE。
[3] CompletionType 引數是SQL_COMMIT ,SQLGetInfo 會針對SQL_CURSOR_COMMIT_BEHAVIOR資訊類型傳回SQL_CB_PRESERVE,或者 CompletionType 引數 SQL_ROLLBACK,而 SQLGetInfo 會傳回SQL_CURSOR_ROLLBACK_BEHAVIOR資訊類型的SQL_CB_PRESERVE。
SQLExecDirect
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
(IH) | S4 [s] 和 [nr] S5 [s] 和 [r] S8 [d] S11 [x] | -- [e] 和 [1] S1 [e] 和 [2] S4 [s] 和 [nr] S5 [s] 和 [r] S8 [d] S11 [x] | -- [e]、 [1]、 和 [3] S1 [e], [2], 和 [3] S4 [s], [nr], 和 [3] S5 [s], [r], 和 [3] S8 [d] 和 [3] S11 [x] 和 [3] 24000 [4] | 請參閱下一個表格 | HY010 | NS [c] HY010 [o] |
[1] 驅動程式管理員傳回錯誤。
[2] 驅動程式管理員未傳回錯誤。
[3] 目前的結果是最後或唯一的結果,或沒有目前的結果。 如需多個結果的詳細資訊,請參閱 多個結果 。
[4] 目前的結果不是最後一個結果。
SQLExecDirect (資料指標狀態)
S5 Opened |
S6 SQLFetch 或 SQLFetchScroll |
S7 SQLExtendedFetch |
---|---|---|
24000 | 24000 [1] | 24000 |
[1] 如果 SQLFetch 或 SQLFetchScroll 尚未傳回SQL_NO_DATA,而且如果 SQLFetch 或 SQLFetchScroll 已傳回SQL_NO_DATA,驅動程式就會傳回此錯誤。
SQLExecute
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
(IH) | (HY010) | 請參閱下一個表格 | S2 [e]、 p 和 [1] S4 [s], [p], [nr], 和 [1] S5 [s], [p], [r], 和 [1] S8 [d], [p], 和 [1] S11 [x], [p], 和 [1] 24000 [p] 和 [2] HY010 [np] | 請參閱資料指標狀態資料表 | HY010 | NS [c] HY010 [o] |
[1] 目前的結果是最後或唯一的結果,或沒有目前的結果。 如需多個結果的詳細資訊,請參閱 多個結果 。
[2] 目前的結果不是最後一個結果。
SQLExecute (備妥狀態)
S2 沒有結果 |
S3 結果 |
---|---|
S4 [s] S8 [d] S11 [x] | S5 [s] S8 [d] S11 [x] |
SQLExecute (資料指標狀態)
S5 Opened |
S6 SQLFetch 或 SQLFetchScroll |
S7 SQLExtendedFetch |
---|---|---|
24000 [p] HY010 [np] | 24000 [p], [1] HY010 [np] | 24000 [p] HY010 [np] |
[1] 如果 SQLFetch 或 SQLFetchScroll 尚未傳回SQL_NO_DATA,而且如果 SQLFetch 或 SQLFetchScroll 已傳回SQL_NO_DATA,驅動程式就會傳回此錯誤。
SQLExtendedFetch
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
Ih | S1010 | S1010 | 24000 | 請參閱下一個表格 | S1010 | NS [c] S1010 [o] |
SQLExtendedFetch (資料指標狀態)
S5 Opened |
S6 SQLFetch 或 SQLFetchScroll |
S7 SQLExtendedFetch |
---|---|---|
S7 [s] 或 [nf] S11 [x] | S1010 | -- [s] 或 [nf] S11 [x] |
SQLFetch 和 SQLFetchScroll
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
Ih | HY010 | HY010 | 24000 | 請參閱下一個表格 | HY010 | NS [c] HY010 [o] |
SQLFetch 和 SQLFetchScroll (資料指標狀態)
S5 Opened |
S6 SQLFetch 或 SQLFetchScroll |
S7 SQLExtendedFetch |
---|---|---|
S6 [s] 或 [nf] S11 [x] | -- [s] 或 [nf] S11 [x] | HY010 |
SQLFreeHandle
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
-- [1] | HY010 | HY010 | HY010 | HY010 | HY010 | HY010 |
IH [2] | S0 | S0 | S0 | S0 | HY010 | HY010 |
-- [3] | -- | -- | -- | -- | -- | -- |
[1] 當 HandleType 已SQL_HANDLE_ENV或SQL_HANDLE_DBC時 ,此資料列會顯示轉換。
[2] 當 HandleType SQL_HANDLE_STMT時 ,此資料列會顯示轉換。
[3] 當 HandleType 已SQL_HANDLE_DESC且明確配置描述項時 ,此資料列會顯示轉換。
SQLFreeStmt
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
IH [1] | -- | -- | S1 [np] S2 [p] | S1 [np] S3 [p] | HY010 | HY010 |
IH [2] | -- | -- | -- | -- | HY010 | HY010 |
[1] 當 Option SQL_CLOSE 時 ,此資料列會顯示轉換。
[2] 當 Option 已SQL_UNBIND或SQL_RESET_PARAMS時 ,此資料列會顯示轉換。 如果 Option 引數SQL_DROP且基礎驅動程式是 ODBC 3*.x* 驅動程式,驅動程式管理員會將此對應至 SQLFreeHandle 的呼叫 ,並將 HandleType 設定為 SQL_HANDLE_STMT。 如需詳細資訊,請參閱 SQLFreeHandle 的 轉換資料表。
SQLGetConnectAttr
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- | -- |
SQLGetCursorName
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
Ih | -- | -- | -- | -- | HY010 | HY010 |
SQLGetData
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
Ih | HY010 | HY010 | 24000 | 請參閱下一個表格 | HY010 | NS [c] HY010 [o] |
SQLGetData (資料指標狀態)
S5 Opened |
S6 SQLFetch 或 SQLFetchScroll |
S7 SQLExtendedFetch |
---|---|---|
24000 | -- [s] 或 [nf] S11 [x] 24000 [b] HY109 [i] | -- [s] 或 [nf] S11 [x] 24000 [b] HY109 [i] |
SQLGetDescField 和 SQLGetDescRec
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
Ih | -- [1] 或 [2] HY010 [3] | 請參閱下一個表格 | -- [1] 或 [2] 24000 [3] | -- [1]、[2]或 [3] S11 [3] 和 [x] | HY010 | NS [c] 或 [4] HY010 [o] 和 [5] |
[1] 描述元Handle 引數是 APD 或 ARD。
[2] 描述元Handle 引數是 IPD。
[3] 描述元Handle 引數是 IRD。
[4] DescriptorHandle 引數與 SQLGetDescField 或 以非同步方式執行的 SQLGetDescRec 函式中的 DescriptorHandle 引數相同。
[5] DescriptorHandle 引數與 SQLGetDescField 或 以非同步方式執行的 SQLGetDescRec 函式中的 DescriptorHandle 引數不同。
SQLGetDescField 和 SQLGetDescRec (備妥狀態)
S2 沒有結果 |
S3 結果 |
---|---|
--[1]、[2]或 [3] S11[2] 和 [x] | --[1]、[2], 或 [3] S11 [x] |
[1] 描述元Handle 引數是 APD 或 ARD。
[2] 描述元Handle 引數是 IPD。
[3] 描述元Handle 引數是 IRD。 請注意,當 DescriptorHandle 是 IRD 時 ,這些函式一律會在狀態 S2 中傳回SQL_NO_DATA。
SQLGetDiagField 和 SQLGetDiagRec
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
--[1] | -- | -- | -- | -- | -- | -- |
IH[2] | --[3] | --[3] | -- | -- | --[3] | --[3] |
[1] 當 HandleType 已SQL_HANDLE_ENV、SQL_HANDLE_DBC或SQL_HANDLE_DESC時 ,此資料列會顯示轉換。
[2] 當 HandleType SQL_HANDLE_STMT時 ,此資料列會顯示轉換。
[3] 當 DiagIdentifier SQL_DIAG_ROW_COUNT 時 ,SQLGetDiagField 一律會傳回此狀態的錯誤。
SQLGetEnvAttr
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- | -- |
SQLGetFunctions
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- | -- |
SQLGetInfo
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- | -- |
SQLGetStmtAttr
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
Ih | --[1] 24000[2] | --[1] 24000[2] | --[1] 24000[2] | 請參閱下一個表格 | HY010 | HY010 |
[1] 語句屬性未SQL_ATTR_ROW_NUMBER。
[2] 語句屬性已SQL_ATTR_ROW_NUMBER。
SQLGetStmtAttr (資料指標狀態)
S5 Opened |
S6 SQLFetch 或 SQLFetchScroll |
S7 SQLExtendedFetch |
---|---|---|
--[1] 24000[2] | --[1] 或 ([v] 和 [2]) 24000 [b] 和 [2] HY109 [i] 和 [2] | -- [i] 或 ([v] 和 [2]) 24000 [b] 和 [2] HY109[1] 和 [2] |
[1] Attribute 引數未SQL_ATTR_ROW_NUMBER。
[2] Attribute 引數已SQL_ATTR_ROW_NUMBER。
SQLMoreResults
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
(IH) | --[1] | --[1] | -- [s] 和 [2] S1 [nf], [np], 和 [4] S2 [nf], [p], 和 [4] S5 [s] 和 [3] S11 [x] | S1 [nf]、 [np], 和 [4] S3 [nf], [p] 和 [4] S4 [s] 和 [2] S5 [s] 和 [3] S11 [x] | HY010 | NS [c] HY010 [o] |
[1] 函式一律會傳回處於此狀態SQL_NO_DATA。
[2] 下一個結果是資料列計數。
[3] 下一個結果是結果集。
[4] 目前的結果是最後一個結果。
SQLNativeSql
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- | -- |
SQLNumParams
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
Ih | HY010 | -- [s] S11 [x] | -- [s] S11 [x] | -- [s] S11 [x] | HY010 | NS [c] HY010 [o] |
SQLNumResultCols
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
Ih | HY010 | -- [s] S11 [x] | -- [s] S11 [x] | -- [s] S11 [x] | HY010 | NS [c] HY010 [o] |
SQLParamData
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
Ih | HY010 | HY010 | HY010 | HY010 | 請參閱下一個表格 | NS [c] HY010 [o] |
SQLParamData (需要資料狀態)
S8 需要資料 |
S9 必須放置 |
S10 可以放置 |
---|---|---|
S1 [e] 和 [1] S2 [e], [nr], 和 [2] S3 [e], [r], 和 [2] S5 [e] 和 [4] S6 [e] 和 [5] S7 [e] 和 [3] S9 [d] S11 [x] | HY010 | S1 [e] 和 [1] S2 [e], [nr], 和 [2] S3 [e], [r], 和 [2] S4 [s], [nr], 和 ([1] 或 [2]) S5 [s], [r], 和 ([1] 或 [2]) S5 ([s] 或 [e]) 和 [4] S6 ([s] 或 [e]) 和 [5] S7 ([s] 或 [e]) 和 [3] S9 [d] S11 [x] |
[1] SQLExecDirect 傳回SQL_NEED_DATA。
[2] SQLExecute 傳回SQL_NEED_DATA。
[3] SQLSetPos 已從狀態 S7 呼叫並傳回SQL_NEED_DATA。
[4] SQLBulkOperations 已從狀態 S5 呼叫並傳回SQL_NEED_DATA。
[5] SQLSetPos 或 SQLBulkOperations 已從狀態 S6 呼叫並傳回SQL_NEED_DATA。
SQLPrepare
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
(IH) | S2 [s] 和 [nr] S3 [s] 和 [r] S11 [x] | -- [s] 或 ([e] 和 [1]) S1 [e] 和 [2] S11 [x] | S1 [e] 和 [3] S2 [s], [nr], 和 [3] S3 [s], [r], 和 [3] S11 [x] 和 [3] 24000[4] | 請參閱下一個表格 | HY010 | NS [c] HY010 [o] |
[1] 由於驗證語句以外的原因,準備失敗(SQLSTATE 是 HY009 [不正確引數值] 或 HY090 [無效字串或緩衝區長度])。
[2] 驗證語句時準備失敗(SQLSTATE 不是 HY009 [不正確引數值] 或 HY090 [無效字串或緩衝區長度])。
[3] 目前的結果是最後或唯一的結果,或沒有目前的結果。 如需多個結果的詳細資訊,請參閱 多個結果 。
[4] 目前的結果不是最後一個結果。
SQLPrepare (資料指標狀態)
S5 Opened |
S6 SQLFetch 或 SQLFetchScroll |
S7 SQLExtendedFetch |
---|---|---|
24000 | 24000 | 24000 |
SQLPutData
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
Ih | HY010 | HY010 | HY010 | HY010 | 請參閱下一個表格 | NS [c] HY010 [o] |
SQLPutData (需要資料狀態)
S8 需要資料 |
S9 必須放置 |
S10 可以放置 |
---|---|---|
HY010 | S1 [e] 和 [1] S2 [e], [nr], 和 [2] S3 [e], [r], 和 [2] S5 [e] 和 [4] S6 [e] 和 [5] S7 [e] 和 [3] S10 [s] S11 [x] | -- [s] S1 [e] 和 [1] S2 [e], [nr], 和 [2] S3 [e], [r], 和 [2] S5 [e] 和 [4] S6 [e] 和 [5] S7 [e] 和 [3] S11 [x] HY011[6] |
[1] SQLExecDirect 傳回SQL_NEED_DATA。
[2] SQLExecute 傳回SQL_NEED_DATA。
[3] SQLSetPos 已從狀態 S7 呼叫並傳回SQL_NEED_DATA。
[4] SQLBulkOperations 已從狀態 S5 呼叫並傳回SQL_NEED_DATA。
[5] SQLSetPos 或 SQLBulkOperations 已從狀態 S6 呼叫並傳回SQL_NEED_DATA。
[6] 針對傳回的單一參數對 SQLPutData 進行一或多個呼叫SQL_SUCCESS,然後 針對相同參數 呼叫 SQLPutData ,並將StrLen_or_Ind 設定為 SQL_Null_DATA。
SQLRowCount
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
(IH) | (HY010) | (HY010) | -- | -- | (HY010) | (HY010) |
SQLSetConnectAttr
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
--[1] | -- | -- | -- | --[2] 24000[3] | HY010 | HY010 |
[1] 當 Attribute 是連接屬性時 ,此資料列會顯示轉換。 如需 Attribute 是語句屬性時的 轉換,請參閱 SQLSetStmtAttr 的 語句轉換資料表。
[2] Attribute 引數未SQL_ATTR_CURRENT_CATALOG。
[3] Attribute 引數已SQL_ATTR_CURRENT_CATALOG。
SQLSetCursorName
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
Ih | -- | -- | 24000 | 24000 | HY010 | HY010 |
SQLSetDescField 和 SQLSetDescRec
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
IH[1] | -- | -- | -- | -- | HY010 | HY010 |
[1] 當 FieldIdentifier 引數SQL_DESC_ARRAY_STATUS_PTR或SQL_DESC_ROWS_PROCESSED_PTR時 ,此資料列會顯示 DescriptorHandle 引數為 ARD、APD、IPD 或 (for SQLSetDescField ) IRD 的轉換 。 當 FieldIdentifier 為任何其他值時 ,呼叫 IRD 的 SQLSetDescField 是錯誤 。
SQLSetEnvAttr
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
HY011 | HY011 | HY011 | HY011 | Y011 | HY01 | HY011 |
SQLSetPos
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
Ih | HY010 | HY010 | 24000 | 請參閱下一個表格 | HY010 | NS [c] HY010 [o] |
SQLSetPos (資料指標狀態)
S5 Opened |
S6 SQLFetch 或 SQLFetchScroll |
S7 SQLExtendedFetch |
---|---|---|
24000 | -- [s] S8 [d] S11 [x] 24000 [b] HY109 [i] | -- [s] S8 [d] S11 [x] 24000 [b] HY109 [i] |
SQLSetStmtAttr
S0 未配置 |
S1 已配置 |
S2-S3 Prepared |
S4 執行 |
S5-S7 資料指標 |
S8-S10 需要資料 |
S11-S12 Async |
---|---|---|---|---|---|---|
Ih | -- | --[1] HY011[2] | --[1] 24000[2] | --[1] 24000[2] | HY010 [np] 或 [1] HY011 [p] 和 [2] | HY010 [np] 或 [1] HY011 [p] 和 [2] |
[1] Attribute 引數未SQL_ATTR_CONCURRENCY、SQL_ATTR_CURSOR_TYPE、SQL_ATTR_SIMULATE_CURSOR、SQL_ATTR_USE_BOOKMARKS、SQL_ATTR_CURSOR_SCROLLABLE或SQL_ATTR_CURSOR_SENSITIVITY。
[2] Attribute 引數SQL_ATTR_CONCURRENCY、SQL_ATTR_CURSOR_TYPE、SQL_ATTR_SIMULATE_CURSOR、SQL_ATTR_USE_BOOKMARKS、SQL_ATTR_CURSOR_SCROLLABLE或SQL_ATTR_CURSOR_SENSITIVITY。