語句轉換

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。