Funkce SQLSetConnectAttrForDbcInfo

Soulad
Představená verze: ODBC 3.81 Shoda standardů: ODBC

Summary
SQLSetConnectAttrForDbcInfo je totéž co SQLSetConnectAttr, ale nastavuje atribut na tokenu pro informace o spojení místo na rukojeti připojení.

Syntax

  
SQLRETURN  SQLSetConnectAttrForDbcInfo(  
                SQLHDBC_INFO_TOKEN    hDbcInfoToken,  
                SQLINTEGER            Attribute,  
                SQLPOINTER            ValuePtr,  
                SQLINTEGER            StringLength );  

Arguments

hDbcInfoToken
[Vstup] Token handle.

Atribut
[Vstup] Atribut na množinu. Seznam platných atributů je specifický pro ovladač a stejný jako u SQLSetConnectAttr.

ValuePtr
[Vstup] Ukazatel na hodnotu, která má být spojena s atributem. V závislosti na hodnotě atributubude ValuePtr 32bitová celočíselná hodnota bez znaménka nebo bude ukazovat na znakový řetězec ukončený nulovým způsobem. Všimněte si, že pokud je argument Attribute hodnotou specifickou pro ovladač, hodnota v ValuePtr může být podepsané celé číslo.

StringLength
[Vstup] Pokud je Attribute atribut definovaný ODBC a ValuePtr ukazuje na znakový řetězec nebo binární buffer, měl by být tento argument délka *ValuePtr. Pro data řetězce znaků by tento argument měl obsahovat počet bajtů v řetězci.

Pokud je Attribute atribut definovaný ODBC a ValuePtr je celé číslo, StringLength se ignoruje .

Pokud je Attribute atribut definovaný ovladačem, aplikace určuje povahu atributu Driver Manageru nastavením argumentu StringLength . StringLength může mít následující hodnoty:

  • Pokud je ValuePtr ukazatelem na řetězec znaků, pak StringLength je délka řetězce nebo SQL_NTS.

  • Pokud je ValuePtr ukazatelem na binární buffer, aplikace umístí výsledek makra SQL_LEN_BINARY_ATTR(length) do StringLength. To umisťuje zápornou hodnotu v StringLength.

  • Pokud je ValuePtr ukazatelem na hodnotu jinou než řetězec znaků nebo binární řetězec, pak by StringLength měla mít hodnotu SQL_IS_POINTER.

  • Pokud ValuePtr obsahuje hodnotu pevné délky, pak je StringLength buď SQL_IS_INTEGER, nebo SQL_IS_UINTEGER, jak je vhodné.

Returns

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR nebo SQL_INVALID_HANDLE.

Diagnostika

Stejné jako SQLSetConnectAttr, s tím rozdílem, že Driver Manager používá HandleType of SQL_HANDLE_DBC_INFO_TOKEN a HandlehDbcInfoToken.

Remarks

SQLSetConnectAttrForDbcInfo je totéž jako SQLSetConnectAttr, ale nastavuje atribut na tokenu pro informace o spojení, místo na handle spojení. Například pokud SQLSetConnectAttr atribut nerozpozná, měl by SQLSetConnectAttrForDbcInfo také vrátit SQL_ERROR pro tento atribut.

Kdykoli ovladač vrátí SQL_ERROR nebo SQL_INVALID_HANDLE, měl by tento atribut ignorovat, aby vypočítal ID poolu. Také Driver Manager získá diagnostické informace z hDbcInfoToken a vrátí SQL_SUCCESS_WITH_INFO aplikaci v SQLConnect a SQLDriverConnect. Aplikace tak může získat podrobnosti o tom, proč některé atributy nelze nastavit.

Aplikace by tuto funkci neměly volat přímo. ODBC ovladač, který podporuje poolování připojení s vědomím ovladačů, musí tuto funkci implementovat.

Zahrňte sqlspi.h pro vývoj ovladačů ODBC.