Skip to content

Latest commit

 

History

History
124 lines (83 loc) · 4.7 KB

environment-transitions.md

File metadata and controls

124 lines (83 loc) · 4.7 KB
title description author ms.author ms.date ms.service ms.subservice ms.topic helpviewer_keywords
Environment Transitions
Environment Transitions
David-Engel
davidengel
01/19/2017
sql
connectivity
reference
environment transitions [ODBC]
transitioning states [ODBC], environment
state transitions [ODBC], environment

Environment Transitions

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.

SQLAllocHandle

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.

SQLDataSources and SQLDrivers

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.

SQLEndTran

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.

SQLFreeHandle

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.

SQLGetDiagField and SQLGetDiagRec

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.

SQLGetEnvAttr

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.

SQLSetEnvAttr

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.

All Other ODBC Functions

E0

Unallocated
E1

Allocated
E2

Connection
(IH) (IH) --