環境轉換

ODBC 環境具有下列三種狀態。

State 描述
E0 未配置的環境
E1 已配置的環境、未配置的連接
E2 已配置的環境、已配置的連線

下表顯示每個 ODBC 函式如何影響環境狀態。

SQLAllocHandle

E0

未配置
E1

已配置
E2

連線
E1[1] --[4] --[4]
(IH)[2] E2[5]
(HY010)[6]
--[4]
(IH)[3] (IH) --[4]

[1] 當 HandleType SQL_HANDLE_ENV時 ,此資料列會顯示轉換。

[2] 當 HandleType 已SQL_HANDLE_DBC時 ,此資料列會顯示轉換。

[3] 當 HandleType 已SQL_HANDLE_STMT或SQL_HANDLE_DESC時 ,此資料列會顯示轉換。

[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] 當 HandleType SQL_HANDLE_ENV時 ,此資料列會顯示轉換。

[2] 當 HandleType 已SQL_HANDLE_DBC時 ,此資料列會顯示轉換。

[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] 當 HandleType SQL_HANDLE_ENV時 ,此資料列會顯示轉換。

[2] 當 HandleType 已SQL_HANDLE_DBC時 ,此資料列會顯示轉換。

[3] 當 HandleType 已SQL_HANDLE_STMT或SQL_HANDLE_DESC時 ,此資料列會顯示轉換。

[4] 還有其他配置的連線控制碼。

[5] Handle 中指定的 連接控制碼是唯一配置的連接控制碼。

SQLGetDiagField 和 SQLGetDiagRec

E0

未配置
E1

已配置
E2

連線
(IH)[1] -- --
(IH)[2] (IH) --

[1] 當 HandleType SQL_HANDLE_ENV時 ,此資料列會顯示轉換。

[2] 當 HandleType 已SQL_HANDLE_DBC、SQL_HANDLE_STMT或SQL_HANDLE_DESC時 ,此資料列會顯示轉換。

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