語句轉換

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。