ODBC對象-Environment

簡述

Environment對象,是ODBC的頂層對象,包含了全局的環境參數。
數據庫

是建立其餘數據庫對象的先決條件,在使用ODBC訪問數據庫前,必須首先建立一個Environment對象。函數

Environment對象建立和釋放:

    SQLSMALLINT hEnv = 0;  // Environment對象句柄
    SQLRETURN ret = SQLAllocHandle(SQL_HANDLE_ENV, NULL, &hEnv); // 建立一個Environment句柄
    ret = SQLFreeHandle(SQL_HANDLE_ENV, hEnv);

Environment屬性設置和獲取:

    Environment使用下列函數獲取和設置屬性:
spa

SQLRETURN SQLGetEnvAttr(
            SQLENV hEnv, SQLINTEGER attrib, 
            SQLPOINT valueptr, SQLINTEGER buflen, SQLINTEGER *pStrLen);
SQLRETURN SQLSetEnvAttr(
            SQLENV hEnv, SQLINTEGER attrib, 
            SQLPOINT valueptr, SQLINTEGER stringlen);

Environment對象具備的屬性:

    SQL_ATTR_CONNECTION_POOLING 

    ODBC-3.8,表示是否在Env層啓用鏈接池,32位無符號整數,取值以下:
code

                                 SQL_CP_OFF              不啓用鏈接池,默認值。
對象

                                 SQL_CP_ONE_PER_DRIVER   對於每一個ODBC驅動啓用一個鏈接池
接口

                                 SQL_CP_ONE_PER_HENV     對於每一個Env對象啓用一個鏈接池字符串

                                 SQL_CP_DRIVER_AWARE     若是驅動不支持驅動級鏈接池,則轉爲啓用ENV級鏈接池。
string

    SQL_ATTR_CP_MATCH    

    ODBC-3.0,表示SQLConnect和SQLDriverConnect函數執行時,鏈接獲取方式,
class

                          32位無符號整數,取值以下:數據

                          SQL_CP_STRICT_MATCH   從鏈接池中獲取全部屬性參數都匹配的鏈接,默認值。

                          SQL_CP_RELAXED_MATCH  獲取鏈接字符串中的關鍵字匹配的鏈接,無需全部參數都匹配。

    SQL_ATTR_ODBC_VERSION  

    ODBC-3.0,32位整數,表示當前ODBC接口的行爲對應的ODBC版本,

                            在執行任何須要SQLHENV的ODBC函數前,必須先設置該屬性,否者將遇到HY010錯誤。

                            取值以下:

                            SQL_OV_ODBC3_80    ODBC 3.8兼容

                            SQL_OV_ODBC3       ODBC 3.0兼容

                            SQL_OV_ODBC2       ODBC 2.0兼容

    SQL_ATTR_OUTPUT_NTS 

    ODBC 3.0,32位整數,表示驅動返回字符串的方式,取值以下:

                         SQL_TRUE   驅動返回字符串以NULL字符結尾,默認方式。

                         SQL_FALSE  驅動返回字符串不以NULL字符結尾。

                                            該選項值默認不被實現,所以調用SQLSetEnvAttr設置時可能返回錯誤(HYC00)。

相關文章
相關標籤/搜索