Función de SQLSetConnectAttr para DbInfo

Conformidad
Versión introducida: ODBC 3.81 Cumplimiento de estándares: ODBC

Summary
SQLSetConnectAttrForDbcInfo es igual que SQLSetConnectAttr, pero establece el atributo en el token de información de conexión en lugar de en el handle de conexión.

Sintaxis

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

Argumentos

hDbcInfoToken
[Entrada] Usuario de token.

Atributo
[Entrada] Atributo al conjunto. La lista de atributos válidos es específica del controlador y es la misma que para SQLSetConnectAttr.

ValuePtr
[Entrada] Apuntador al valor que se asociará con Atributo. Dependiendo del valor de Attribute, ValuePtr será un valor entero sin signo de 32 bits o apuntará a una cadena de caracteres terminada en nulo. Nótese que si el argumento Atributo es un valor específico del driver, el valor en ValuePtr puede ser un entero con signo.

StringLength
[Entrada] Si Attribute es un atributo definido por ODBC y ValuePtr apunta a una cadena de caracteres o a un búfer binario, este argumento debe ser la longitud de *ValuePtr. Para los datos de cadenas de caracteres, este argumento debe contener el número de bytes en la cadena.

Si Attribute es un atributo definido por ODBC y ValuePtr es un entero, StringLength se omite.

Si Attribute es un atributo definido por el controlador, la aplicación indica la naturaleza del atributo en el Administrador de controladores estableciendo el argumento StringLength . StringLength puede tener los siguientes valores:

  • Si ValuePtr es un puntero a una cadena de caracteres, StringLength es la longitud de la cadena o SQL_NTS.

  • Si ValuePtr es un puntero a un búfer binario, la aplicación coloca el resultado de la macro SQL_LEN_BINARY_ATTR(length) en StringLength. Esto coloca un valor negativo en StringLength.

  • Si ValuePtr es un puntero a un valor distinto de una cadena de caracteres o una cadena binaria, StringLength debe tener el valor SQL_IS_POINTER.

  • Si ValuePtr contiene un valor de longitud fija, StringLength se SQL_IS_INTEGER o SQL_IS_UINTEGER, según corresponda.

Devoluciones

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR o SQL_INVALID_HANDLE.

Diagnósticos

Igual que SQLSetConnectAttr, excepto que el Gestor de Controladores usará un HandleType de SQL_HANDLE_DBC_INFO_TOKEN y un Handle de hDbcInfoToken.

Remarks

SQLSetConnectAttrForDbcInfo es igual que SQLSetConnectAttr, pero establece el atributo en el token de información de conexión, en lugar de en el handle de conexión. Por ejemplo, si SQLSetConnectAttr no reconoce un atributo, SQLSetConnectAttrForDbcInfo también debería devolver SQL_ERROR para ese atributo.

Siempre que el controlador devuelva SQL_ERROR o SQL_INVALID_HANDLE, debe ignorar este atributo para calcular el ID del pool. Además, el Driver Manager obtendrá la información de diagnóstico de hDbcInfoToken y devolverá SQL_SUCCESS_WITH_INFO a la aplicación en SQLConnect y SQLDriverConnect. Por lo tanto, una aplicación puede obtener detalles sobre por qué no se pueden establecer ciertos atributos.

Las aplicaciones no deben llamar directamente a esta función. Un controlador ODBC que soporte pooling de conexiones consciente del controlador debe implementar esta función.

Incluye sqlspi.h para el desarrollo de controladores ODBC.