环境转换
ODBC 环境具有以下三种状态。
状态 | 说明 |
---|---|
E0 | 未分配的环境 |
E1 | 已分配的环境,未分配的连接 |
E2 | 分配的环境、已分配的连接 |
下表显示了每个 ODBC 函数如何影响环境状态。
SQLAllocHandle
E0 未分配 |
E1 已分配 |
E2 连接 |
---|---|---|
E1[1] | --[4] | --[4] |
(IH) [2] | E2[5] (HY010) [6] |
--[4] |
(IH) [3] | (IH) | --[4] |
[1] 此行显示SQL_HANDLE_ENV HandleType 时的转换。
[2] 此行显示SQL_HANDLE_DBC HandleType 时的转换。
[3] 此行显示SQL_HANDLE_STMT或SQL_HANDLE_DESC HandleType 时的转换。
[4] 使用 OutputHandlePtr 调用指向有效句柄的 SQLAllocHandle 将覆盖该句柄。 这可能是应用程序编程错误。
[5] 已在环境中设置了SQL_ATTR_ODBC_VERSION环境属性。
[6] 尚未对环境设置SQL_ATTR_ODBC_VERSION环境属性。
SQLDataSources 和 SQLDrivers
E0 未分配 |
E1 已分配 |
E2 连接 |
---|---|---|
(IH) | --[1] (HY010) [2] |
--[1] (HY010) [2] |
[1] 已在环境中设置了SQL_ATTR_ODBC_VERSION环境属性。
[2] 尚未在环境中设置SQL_ATTR_ODBC_VERSION环境属性。
SQLEndTran
E0 未分配 |
E1 已分配 |
E2 连接 |
---|---|---|
(IH) [1] | --[3] (HY010) [4] |
--[3] (HY010) [4] |
(IH) [2] | (IH) | -- |
[1] 此行显示SQL_HANDLE_ENV HandleType 时的转换。
[2] 此行显示SQL_HANDLE_DBC HandleType 时的转换。
[3] 已在环境中设置了SQL_ATTR_ODBC_VERSION环境属性。
[4] 尚未在环境中设置SQL_ATTR_ODBC_VERSION环境属性。
SQLFreeHandle
E0 未分配 |
E1 已分配 |
E2 连接 |
---|---|---|
(IH) [1] | E0 | (HY010) |
(IH) [2] | (IH) | --[4] E1[5] |
(IH) [3] | (IH) | -- |
[1] 此行显示SQL_HANDLE_ENV HandleType 时的转换。
[2] 此行显示SQL_HANDLE_DBC HandleType 时的转换。
[3] 此行显示SQL_HANDLE_STMT或SQL_HANDLE_DESC HandleType 时的转换。
[4] 还有其他分配的连接句柄。
[5] 在句柄中指定的连接句 柄 是唯一分配的连接句柄。
SQLGetDiagField 和 SQLGetDiagRec
E0 未分配 |
E1 已分配 |
E2 连接 |
---|---|---|
(IH) [1] | -- | -- |
(IH) [2] | (IH) | -- |
[1] 此行显示SQL_HANDLE_ENV HandleType 时的转换。
[2] 此行显示SQL_HANDLE_DBC、SQL_HANDLE_STMT或SQL_HANDLE_DESC HandleType 时的转换。
SQLGetEnvAttr
E0 未分配 |
E1 已分配 |
E2 连接 |
---|---|---|
(IH) | --[1] (HY010) [2] |
-- |
[1] 已在环境中设置了SQL_ATTR_ODBC_VERSION环境属性。
[2] 尚未在环境中设置SQL_ATTR_ODBC_VERSION环境属性。
SQLSetEnvAttr
E0 未分配 |
E1 已分配 |
E2 连接 |
---|---|---|
(IH) | --[1] (HY010) [2] |
(HY011) |
[1] 已在环境中设置了SQL_ATTR_ODBC_VERSION环境属性。
[2] Attribute 参数未 SQL_ATTR_ODBC_VERSION,并且尚未在环境中设置SQL_ATTR_ODBC_VERSION环境属性。
所有其他 ODBC 函数
E0 未分配 |
E1 已分配 |
E2 连接 |
---|---|---|
(IH) | (IH) | -- |