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) | -- |