MDAC 2.5 SDK - ODBC Programmer's Reference
Appendix B: ODBC State Transition Tables
ODBC environments have the following three states.
State | Description |
E0 | Unallocated environment |
E1 | Allocated environment, unallocated connection |
E2 | Allocated environment, allocated connection |
The following tables show how each ODBC function affects the environment state.
E0 Unallocated |
E1 Allocated |
E2 Connection |
E1[1] | --[4] | --[4] |
(IH)[2] | E2[5] (HY010)[6] |
--[4] |
(IH)[3] | (IH) | --[4] |
[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 or SQL_HANDLE_DESC.
[4] Calling SQLAllocHandle with OutputHandlePtr pointing to a valid handle overwrites that handle. This might be an application programming error.
[5] The SQL_ATTR_ODBC_VERSION environment attribute had been set on the environment.
[6] The SQL_ATTR_ODBC_VERSION environment attribute had not been set on the environment.
E0 Unallocated |
E1 Allocated |
E2 Connection |
(IH) | --[1] (HY010)[2] |
--[1] (HY010)[2] |
[1] The SQL_ATTR_ODBC_VERSION environment attribute had been set on the environment.
[2] The SQL_ATTR_ODBC_VERSION environment attribute had not been set on the environment.
E0 Unallocated |
E1 Allocated |
E2 Connection |
(IH)[1] | --[3] (HY010)[4] |
--[3] (HY010)[4] |
(IH)[2] | (IH) | -- |
[1] This row shows transitions when HandleType was SQL_HANDLE_ENV.
[2] This row shows transitions when HandleType was SQL_HANDLE_DBC.
[3] The SQL_ATTR_ODBC_VERSION environment attribute had been set on the environment.
[4] The SQL_ATTR_ODBC_VERSION environment attribute had not been set on the environment.
E0 Unallocated |
E1 Allocated |
E2 Connection |
(IH)[1] | E0 | (HY010) |
(IH)[2] | (IH) | --[4] E1[5] |
(IH)[3] | (IH) | -- |
[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 or SQL_HANDLE_DESC.
[4] There were other allocated connection handles.
[5] The connection handle specified in Handle was the only allocated connection handle.
E0 Unallocated |
E1 Allocated |
E2 Connection |
(IH)[1] | -- | -- |
(IH)[2] | (IH) | -- |
[1] This row shows transitions when HandleType was SQL_HANDLE_ENV.
[2] This row shows transitions when HandleType was SQL_HANDLE_DBC, SQL_HANDLE_STMT, or SQL_HANDLE_DESC.
E0 Unallocated |
E1 Allocated |
E2 Connection |
(IH) | --[1] (HY010)[2] |
-- |
[1] The SQL_ATTR_ODBC_VERSION environment attribute had been set on the environment.
[2] The SQL_ATTR_ODBC_VERSION environment attribute had not been set on the environment.
E0 Unallocated |
E1 Allocated |
E2 Connection |
(IH) | --[1] (HY010)[2] |
(HY011) |
[1] The SQL_ATTR_ODBC_VERSION environment attribute had been set on the environment.
[2] The Attribute argument was not SQL_ATTR_ODBC_VERSION, and the SQL_ATTR_ODBC_VERSION environment attribute had not been set on the environment.
E0 Unallocated |
E1 Allocated |
E2 Connection |
(IH) | (IH) | -- |