Statement Transitions

Statement Transitions

 

ODBC statements have the following states.

State

Description

S0

Unallocated statement. (The connection state must be C4, C5, or C6. For more information, see Connection Transitions.)

S1

Allocated statement.

S2

Prepared statement. No result set will be created.

S3

Prepared statement. A (possibly empty) result set will be created.

S4

Statement executed and no result set was created.

S5

Statement executed and a (possibly empty) result set was created. The cursor is open and positioned before the first row of the result set.

S6

Cursor positioned with SQLFetch or SQLFetchScroll.

S7

Cursor positioned with SQLExtendedFetch.

S8

Function needs data. SQLParamData has not been called.

S9

Function needs data. SQLPutData has not been called.

S10

Function needs data. SQLPutData has been called.

S11

Still executing. A statement is left in this state after a function that is executed asynchronously returns SQL_STILL_EXECUTING. A statement is temporarily in this state while any function that accepts a statement handle is executing. Temporary residence in state S11 is not shown in any state tables except the state table for SQLCancel. While a statement is temporarily in state S11, the function can be canceled by calling SQLCancel from another thread.

S12

Asynchronous execution canceled. In S12, an application must call the canceled function until it returns a value other than SQL_STILL_EXECUTING. The function was canceled successfully only if the function returns SQL_ERROR and SQLSTATE HY008 (Operation canceled). If it returns any other value, such as SQL_SUCCESS, the cancel operation failed and the function executed normally.

States S2 and S3 are known as the prepared states, states S5 through S7 as the cursor states, states S8 through S10 as the need data states, and states S11 and S12 as the asynchronous states. In each of these groups, the transitions are shown separately only when they are different for each state in the group; in most cases, the transitions for each state in each a group are the same.

The following tables show how each ODBC function affects the statement state.

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

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]   This row shows transitions when HandleType was SQL_HANDLE_ENV.

[2]   This row shows transitions when HandleType was SQL_HANDLE_DBC.

[3]   This row shows transitions when HandleType was SQL_HANDLE_STMT.

[4]   This row shows transitions when HandleType was SQL_HANDLE_DESC.

[5]   Calling SQLAllocHandle with OutputHandlePtr pointing to a valid handle overwrites that handle without regard for the previous contents to that handle and might cause problems for ODBC drivers. It is incorrect ODBC application programming to call SQLAllocHandle twice with the same application variable defined for *OutputHandlePtr without calling SQLFreeHandle to free the handle before reallocating it. Overwriting ODBC handles in such a manner might lead to inconsistent behavior or errors on the part of ODBC drivers.

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)

--

--

--

--

(HY010)

(HY010)

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)

--

--

--

--

(HY010)

(HY010)

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(08002)

(08002)

(08002)

(08002)

(08002)

(08002)

(08002)

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)

(HY010)

(HY010)

24000

See next table

(HY010)

NS [c] (HY010) o

S5

Opened

S6

SQLFetch or SQLFetchScroll

S7

SQLExtendedFetch

-- [s] S8 [d] S11 [x]

-- [s] S8 [d] S11 [x]

(HY010)

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)

--

--

--

--

S1[1] S2 [nr] and [2] S3 [r]and [2] S5[3] and [5] S6([3] or [4]) and [6] S7[4] and [7]

See next table

[1]   SQLExecDirect returned SQL_NEED_DATA.

[2]   SQLExecute returned SQL_NEED_DATA.

[3]   SQLBulkOperations returned SQL_NEED_DATA.

[4]   SQLSetPos returned SQL_NEED_DATA.

[5]   SQLFetch, SQLFetchScroll, or SQLExtendedFetch had not been called.

[6]   SQLFetch or SQLFetchScroll had been called.

[7]   SQLExtendedFetch had been called.

S11

Still executing

S12

Asynch canceled

NS[1] S12[2]

S12

[1]   The statement was temporarily in state S11 while a function was executing. SQLCancel was called from a different thread.

[2]   The statement was in state S11 because a function called asynchronously returned SQL_STILL_EXECUTING.

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)

24000

24000

24000

S1 [np] S3 [p]

(HY010)

(HY010)

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)

(HY010)

See next table

24000

-- [s] S11 [x]

(HY010)

NS [c] (HY010) o

S2

No Results

S3

Results

--[1] 07005[2]

-- [s] S11 x

[1]   FieldIdentifier was SQL_DESC_COUNT.

[2]   FieldIdentifier was not SQL_DESC_COUNT.

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)

S5 [s] S11 [x]

S1 [e] S5 [s] S11 [x]

S1 [e] and [1] S5 [s] and [1] S11 [x] and [1] 24000[2]

See next table

(HY010)

NS [c] (HY010) o

[1]   The current result is the last or only result, or there are no current results. For more information about multiple results, see Multiple Results.

[2]   The current result is not the last result.

S5

Opened

S6

SQLFetch or SQLFetchScroll

S7

SQLExtendedFetch

24000

(24000)[1]

(24000)

[1]   This error is returned by the Driver Manager if SQLFetch or SQLFetchScroll has not returned SQL_NO_DATA and is returned by the driver if SQLFetch or SQLFetchScroll has returned SQL_NO_DATA.

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)[1]

--

--

--

--

(HY010)

NS [c] and [3] (HY010) [o] or [4]

(IH)[2]

(HY010)

See next table

24000

-- [s] S11 x

(HY010)

NS [c] and [3] (HY010) [o] or [4]

[1]   This row shows transitions when the SourceDescHandle argument was an ARD, APD, or IPD.

[2]   This row shows transitions when the SourceDescHandle argument was an IRD.

[3]   The SourceDescHandle and TargetDescHandle arguments were the same as in the SQLCopyDesc function that is running asynchronously.

[4]   Either the SourceDescHandle argument or the TargetDescHandle argument (or both) were different than in the SQLCopyDesc function that is running asynchronously.

S2

No Results

S3

Results

24000[1]

-- [s] S11 [x]

[1]   This row shows transitions when the SourceDescHandle argument was an IRD.

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

--

--

--

--

--

--

--

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)

(HY010)

See next table

24000

-- [s] S11 [x]

(HY010)

NS [c] (HY010) o

S2

No Results

S3

Results

07005

-- [s] S11 [x]

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)

(HY010)

-- [s] S11 [x]

(HY010)

(HY010)

(HY010)

NS [c] (HY010) [o]

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

--[1]

S0[1]

S0[1]

S0[1]

S0[1]

(HY010)

(HY010)

[1]   Calling SQLDisconnect frees all statements associated with the connection. Furthermore, this returns the connection state to C2; the connection state must be C4 before the statement state is S0.

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

--

--

--[2] or [3] S1[1]

--[3]  S1 [np] and ([1] or [2]) S1 [p] and [1] S2 [p] and [2]

--[3]  S1 [np] and ([1] or [2]) S1 [p] and [1] S3 [p] and [2]

(HY010)

(HY010)

[1]   The CompletionType argument is SQL_COMMIT and SQLGetInfo returns SQL_CB_DELETE for the SQL_CURSOR_COMMIT_BEHAVIOR information type, or the CompletionType argument is SQL_ROLLBACK and SQLGetInfo returns SQL_CB_DELETE for the SQL_CURSOR_ROLLBACK_BEHAVIOR information type.

[2]   The CompletionType argument is SQL_COMMIT and SQLGetInfo returns SQL_CB_CLOSE for the SQL_CURSOR_COMMIT_BEHAVIOR information type, or the CompletionType argument is SQL_ROLLBACK and SQLGetInfo returns SQL_CB_CLOSE for the SQL_CURSOR_ROLLBACK_BEHAVIOR information type.

[3]   The CompletionType argument is SQL_COMMIT and SQLGetInfo returns SQL_CB_PRESERVE for the SQL_CURSOR_COMMIT_BEHAVIOR information type, or the CompletionType argument is SQL_ROLLBACK and SQLGetInfo returns SQL_CB_PRESERVE for the SQL_CURSOR_ROLLBACK_BEHAVIOR information type.

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)

S4 [s] and [nr] S5 [s] and [r] S8 [d] S11 [x]

-- [e] and [1] S1 [e] and [2] S4 [s] and [nr] S5 [s] and [r] S8 [d] S11 [x]

-- [e], [1], and [3] S1 [e], [2], and [3] S4 [s], [nr], and [3] S5 [s], [r], and [3] S8 [d] and [3] S11 [x] and [3] 24000 [4]

See next table

(HY010)

NS [c] (HY010) [o]

[1]   The error was returned by the Driver Manager.

[2]   The error was not returned by the Driver Manager.

[3]   The current result is the last or only result, or there are no current results. For more information about multiple results, see Multiple Results.

[4]   The current result is not the last result.

S5

Opened

S6

SQLFetch or SQLFetchScroll

S7

SQLExtendedFetch

24000

(24000) [1]

(24000)

[1]   This error is returned by the Driver Manager if SQLFetch or SQLFetchScroll has not returned SQL_NO_DATA, and is returned by the driver if SQLFetch or SQLFetchScroll has returned SQL_NO_DATA.

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)

(HY010)

See next table

S2 [e], p, and [1] S4 [s], [p], [nr], and [1] S5 [s], [p], [r], and [1] S8 [d], [p], and [1] S11 [x], [p], and [1] 24000 [p] and [2] (HY010) [np]

See cursor states table

(HY010)

NS [c] (HY010) [o]

[1]   The current result is the last or only result, or there are no current results. For more information about multiple results, see Multiple Results.

[2]   The current result is not the last result.

S2

No Results

S3

Results

S4 [s] S8 [d] S11 [x]

S5 [s] S8 [d] S11 [x]

S5

Opened

S6

SQLFetch or SQLFetchScroll

S7

SQLExtendedFetch

24000 [p] (HY010) [np]

(24000) [p], [1] (HY010) [np]

(24000) [p] (HY010) [np]

[1]   This error is returned by the Driver Manager if SQLFetch or SQLFetchScroll has not returned SQL_NO_DATA, and is returned by the driver if SQLFetch or SQLFetchScroll has returned SQL_NO_DATA.

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)

(S1010)

(S1010)

24000

See next table

(S1010)

NS [c] (S1010) [o]

S5

Opened

S6

SQLFetch or SQLFetchScroll

S7

SQLExtendedFetch

S7 [s] or [nf] S11 [x]

(S1010)

-- [s] or [nf] S11 [x]

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)

(HY010)

(HY010)

24000

See next table

(HY010)

NS [c] (HY010) [o]

S5

Opened

S6

SQLFetch or SQLFetchScroll

S7

SQLExtendedFetch

S6 [s] or [nf] S11 [x]

-- [s] or [nf] S11 [x]

(HY010)

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

-- [1]

(HY010)

(HY010)

(HY010)

(HY010)

(HY010)

(HY010)

(IH) [2]

S0

S0

S0

S0

(HY010)

(HY010)

-- [3]

--

--

--

--

--

--

[1]   This row shows transitions when HandleType was SQL_HANDLE_ENV or SQL_HANDLE_DBC.

[2]   This row shows transitions when HandleType was SQL_HANDLE_STMT.

[3]   This row shows transitions when HandleType was SQL_HANDLE_DESC and the descriptor was explicitly allocated.

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH) [1]

--

--

S1 [np] S2 [p]

S1 [np] S3 [p]

(HY010)

(HY010)

(IH) [2]

--

--

--

--

(HY010)

(HY010)

[1]   This row shows transitions when Option was SQL_CLOSE.

[2]   This row shows transitions when Option was SQL_UNBIND or SQL_RESET_PARAMS. If the Option argument was SQL_DROP and the underlying driver is an ODBC 3.x driver, the Driver Manager maps this to a call to SQLFreeHandle with HandleType set to SQL_HANDLE_STMT. For more information, see the transition table for SQLFreeHandle.

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

--

--

--

--

--

--

--

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)

--

--

--

--

(HY010)

(HY010)

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)

(HY010)

(HY010)

(24000)

See next table

(HY010)

NS [c] (HY010) [o]

S5

Opened

S6

SQLFetch or SQLFetchScroll

S7

SQLExtendedFetch

(24000)

-- [s] or [nf] S11 [x] 24000 [b] HY109 [i]

-- [s] or [nf] S11 [x] 24000 [b] HY109 [i]

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)

-- [1] or [2] (HY010) [3]

See next table

-- [1] or [2] 24000 [3]

-- [1], [2], or [3] S11 [3] and [x]

(HY010)

NS [c] or [4] (HY010) [o] and [5]

[1]   The DescriptorHandle argument was an APD or ARD.

[2]   The DescriptorHandle argument was an IPD.

[3]   The DescriptorHandle argument was an IRD.

[4]   The DescriptorHandle argument was the same as the DescriptorHandle argument in the SQLGetDescField or SQLGetDescRec function that is running asynchronously.

[5]   The DescriptorHandle argument was different than the DescriptorHandle argument in the SQLGetDescField or SQLGetDescRec function that is running asynchronously.

S2

No Results

S3

Results

--[1], [2], or [3] S11[2] and [x]

--[1], [2], or [3] S11 [x]

[1]   The DescriptorHandle argument was an APD or ARD.

[2]   The DescriptorHandle argument was an IPD.

[3]   The DescriptorHandle argument was an IRD. Note that these functions always return SQL_NO_DATA in state S2 when DescriptorHandle was an IRD.

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

--[1]

--

--

--

--

--

--

(IH)[2]

--[3]

--[3]

--

--

--[3]

--[3]

[1]   This row shows transitions when HandleType was SQL_HANDLE_ENV, SQL_HANDLE_DBC, or SQL_HANDLE_DESC.

[2]   This row shows transitions when HandleType was SQL_HANDLE_STMT.

[3]   SQLGetDiagField always returns an error in this state when DiagIdentifier is SQL_DIAG_ROW_COUNT.

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

--

--

--

--

--

--

--

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

--

--

--

--

--

--

--

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

--

--

--

--

--

--

--

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)

--[1] (24000)[2]

--[1] (24000)[2]

--[1] (24000)[2]

See next table

(HY010)

(HY010)

[1]   The statement attribute was not SQL_ATTR_ROW_NUMBER.

[2]   The statement attribute was SQL_ATTR_ROW_NUMBER.

S5

Opened

S6

SQLFetch or SQLFetchScroll

S7

SQLExtendedFetch

--[1] (24000)[2]

--[1] or ([v] and [2]) 24000 [b] and [2] HY109 [i] and [2]

-- [i] or ([v] and [2]) 24000 [b] and [2] HY109[1] and [2]

[1]   The Attribute argument was not SQL_ATTR_ROW_NUMBER.

[2]   The Attribute argument was SQL_ATTR_ROW_NUMBER.

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)

--[1]

--[1]

-- [s] and [2] S1 [nf], [np], and [4] S2 [nf], [p], and [4] S5 [s] and [3] S11 [x]

S1 [nf], [np], and [4] S3 [nf], [p] and [4] S4 [s] and [2] S5 [s] and [3] S11 [x]

(HY010)

NS [c] (HY010) [o]

[1]   The function always returns SQL_NO_DATA in this state.

[2]   The next result is a row count.

[3]   The next result is a result set.

[4]   The current result is the last result.

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

--

--

--

--

--

--

--

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)

(HY010)

-- [s] S11 [x]

-- [s] S11 [x]

-- [s] S11 [x]

(HY010)

NS [c] (HY010) [o]

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)

(HY010)

-- [s] S11 [x]

-- [s] S11 [x]

-- [s] S11 [x]

(HY010)

NS [c] (HY010) [o]

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)

(HY010)

(HY010)

(HY010)

(HY010)

See next table

NS [c] (HY010) [o]

S8

Need Data

S9

Must Put

S10

Can Put

S1 [e] and [1] S2 [e], [nr], and [2] S3 [e], [r], and [2] S5 [e] and [4] S6 [e] and [5] S7 [e] and [3] S9 [d] S11 [x]

HY010

S1 [e] and [1] S2 [e], [nr], and [2] S3 [e], [r], and [2] S4 [s], [nr], and ([1] or [2]) S5 [s], [r], and ([1] or [2]) S5 ([s] or [e]) and [4] S6 ([s] or [e]) and [5] S7 ([s] or [e]) and [3] S9 [d] S11 [x]

[1]   SQLExecDirect returned SQL_NEED_DATA.

[2]   SQLExecute returned SQL_NEED_DATA.

[3]   SQLSetPos had been called from state S7 and returned SQL_NEED_DATA.

[4]   SQLBulkOperations had been called from state S5 and returned SQL_NEED_DATA.

[5]   SQLSetPos or SQLBulkOperations had been called from state S6 and returned SQL_NEED_DATA.

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)

S2 [s] and [nr] S3 [s] and [r] S11 [x]

-- [s] or ([e] and [1]) S1 [e] and [2] S11 [x]

S1 [e] and [3] S2 [s], [nr], and [3] S3 [s], [r], and [3] S11 [x] and [3] 24000[4]

See next table

(HY010)

NS [c] (HY010) [o]

[1]   The preparation fails for a reason other than validating the statement (the SQLSTATE was HY009 [Invalid argument value] or HY090 [Invalid string or buffer length]).

[2]   The preparation fails while validating the statement (the SQLSTATE was not HY009 [Invalid argument value] or HY090 [Invalid string or buffer length]).

[3]   The current result is the last or only result, or there are no current results. For more information about multiple results, see Multiple Results.

[4]   The current result is not the last result.

S5

Opened

S6

SQLFetch or SQLFetchScroll

S7

SQLExtendedFetch

24000

(24000)

(24000)

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)

(HY010)

(HY010)

(HY010)

(HY010)

See next table

NS [c] (HY010) [o]

S8

Need Data

S9

Must Put

S10

Can Put

HY010

S1 [e] and [1] S2 [e], [nr], and [2] S3 [e], [r], and [2] S5 [e] and [4] S6 [e] and [5] S7 [e] and [3] S10 [s] S11 [x]

-- [s] S1 [e] and [1] S2 [e], [nr], and [2] S3 [e], [r], and [2] S5 [e] and [4] S6 [e] and [5] S7 [e] and [3] S11 [x] HY011[6]

[1]   SQLExecDirect returned SQL_NEED_DATA.

[2]   SQLExecute returned SQL_NEED_DATA.

[3]   SQLSetPos had been called from state S7 and returned SQL_NEED_DATA.

[4]   SQLBulkOperations had been called from state S5 and returned SQL_NEED_DATA.

[5]   SQLSetPos or SQLBulkOperations had been called from state S6 and returned SQL_NEED_DATA.

[6]   One or more calls to SQLPutData for a single parameter returned SQL_SUCCESS, and then a call to SQLPutData was made for the same parameter with StrLen_or_Ind set to SQL_NULL_DATA.

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)

(HY010)

(HY010)

--

--

(HY010)

(HY010)

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

--[1]

--

--

--

--[2] 24000[3]

(HY010)

(HY010)

[1]   This row shows transitions when Attribute was a connection attribute. For transitions when Attribute was a statement attribute, see the statement transition table for SQLSetStmtAttr.

[2]   The Attribute argument was not SQL_ATTR_CURRENT_CATALOG.

[3]   The Attribute argument was SQL_ATTR_CURRENT_CATALOG.

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)

--

--

(24000)

(24000)

(HY010)

(HY010)

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)[1]

--

--

--

--

(HY010)

(HY010)

[1]   This row shows transitions where the DescriptorHandle argument is an ARD, APD, IPD, or (for SQLSetDescField) an IRD when the FieldIdentifier argument is SQL_DESC_ARRAY_STATUS_PTR or SQL_DESC_ROWS_PROCESSED_PTR. It is an error to call SQLSetDescField for an IRD when FieldIdentifier is any other value.

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(HY011)

(HY011)

(HY011)

(HY011)

(HY011)

(HY011)

(HY011)

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)

(HY010)

(HY010)

(24000)

See next table

(HY010)

NS [c] (HY010) [o]

S5

Opened

S6

SQLFetch or SQLFetchScroll

S7

SQLExtendedFetch

(24000)

-- [s] S8 [d] S11 [x] 24000 [b] HY109 [i]

-- [s] S8 [d] S11 [x] 24000 [b] HY109 [i]

S0

Unallocated

S1

Allocated

S2–S3

Prepared

S4

Executed

S5–S7

Cursor

S8–S10

Need Data

S11–S12

Async

(IH)

--

--[1] (HY011)[2]

--[1] (24000)[2]

--[1] (24000)[2]

(HY010) [np] or [1] (HY011) [p] and [2]

(HY010) [np] or [1] (HY011) [p] and [2]

[1]   The Attribute argument was not SQL_ATTR_CONCURRENCY, SQL_ATTR_CURSOR_TYPE, SQL_ATTR_SIMULATE_CURSOR, SQL_ATTR_USE_BOOKMARKS, SQL_ATTR_CURSOR_SCROLLABLE, or SQL_ATTR_CURSOR_SENSITIVITY.

[2]   The Attribute argument was SQL_ATTR_CONCURRENCY, SQL_ATTR_CURSOR_TYPE, SQL_ATTR_SIMULATE_CURSOR, SQL_ATTR_USE_BOOKMARKS, SQL_ATTR_CURSOR_SCROLLABLE, or SQL_ATTR_CURSOR_SENSITIVITY.

Show:
© 2016 Microsoft