Função SQLSetConnectAttrForDbcInfo

Conformidade
Versão Introduzida: Conformidade com as Normas ODBC 3.81: ODBC

Summary
SQLSetConnectAttrForDbcInfo é o mesmo que SQLSetConnectAttr, mas define o atributo no token de informação de ligação em vez de no handle de ligação.

Syntax

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

Arguments

hDbcInfoToken
[Entrada] Nome de identificação do token.

Atributo
[Entrada] Atributo ao conjunto. A lista de atributos válidos é específica do driver e igual à do SQLSetConnectAttr.

ValuePtr
[Entrada] Apontar para o valor a ser associado ao Atributo. Dependendo do valor de Attribute, ValuePtr será um valor inteiro não assinado de 32 bits ou apontará para uma cadeia de caracteres terminada por nulo. Note que, se o argumento Atributo for um valor específico do driver, o valor em ValuePtr pode ser um inteiro com assinatura.

StringLength
[Entrada] Se o Atributo for um atributo definido por ODBC e o ValuePtr apontar para uma cadeia de caracteres ou um buffer binário, este argumento deve corresponder ao comprimento de *ValuePtr. Para dados de cadeia de caracteres, este argumento deve conter o número de bytes na cadeia.

Se o Atributo for um atributo definido por ODBC e o ValuePtr for um inteiro, o StringLength é ignorado.

Se o Atributo for definido pelo driver, a aplicação indica a natureza do atributo ao Driver Manager definindo o argumento StringLength . StringLength pode ter os seguintes valores:

  • Se ValuePtr for um ponteiro para uma cadeia de caracteres, então StringLength é o comprimento da cadeia ou SQL_NTS.

  • Se o ValuePtr for um apontador para um buffer binário, então a aplicação coloca o resultado da macro SQL_LEN_BINARY_ATTR(comprimento) no StringLength. Isto coloca um valor negativo em StringLength.

  • Se ValuePtr for um ponteiro para um valor diferente de uma cadeia de caracteres ou binária, então StringLength deve ter o valor SQL_IS_POINTER.

  • Se o ValuePtr contiver um valor de comprimento fixo, então o StringLength é SQL_IS_INTEGER ou SQL_IS_UINTEGER, conforme apropriado.

Devoluções

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR ou SQL_INVALID_HANDLE.

Diagnósticos

Tal como o SQLSetConnectAttr, exceto que o Gestor de Drivers usa um HandleType de SQL_HANDLE_DBC_INFO_TOKEN e um Handle de hDbcInfoToken.

Observações

SQLSetConnectAttrForDbcInfo é o mesmo que SQLSetConnectAttr, mas define o atributo no token de informação de ligação, em vez de no handle de ligação. Por exemplo, se SQLSetConnectAttr não reconhecer um atributo, SQLSetConnectAttrForDbcInfo também deve devolver SQL_ERROR para esse atributo.

Sempre que o driver devolve SQL_ERROR ou SQL_INVALID_HANDLE, deve ignorar este atributo para calcular o ID do pool. Além disso, o Gestor de Drivers obterá a informação de diagnóstico do hDbcInfoToken e devolverá SQL_SUCCESS_WITH_INFO à aplicação no SQLConnect e SQLDriverConnect. Assim, uma aplicação pode obter detalhes sobre porque é que alguns atributos não podem ser definidos.

As aplicações não devem chamar esta função diretamente. Um driver ODBC que suporta pooling de conexões consciente do driver deve implementar esta função.

Incluir sqlspi.h para desenvolvimento de drivers ODBC.