Mapeamento SQLSetConnectOption

Quando um ODBC 2. x aplicativo chama SQLSetConnectOption por meio de um driver ODBC 3*.x*, a chamada para

SQLSetConnectOption(hdbc, fOption, vParam)  

resultará da seguinte maneira:

  • Se fOption indicar um atributo de conexão definido pelo ODBC que requer uma cadeia de caracteres, o Gerenciador de Driver chamará

    SQLSetConnectAttr(ConnectionHandle, Attribute, ValuePtr, SQL_NTS)  
    
  • Se fOption indicar um atributo de conexão definido pelo ODBC que retorna um valor inteiro de 32 bits, o Gerenciador de Driver chamará

    SQLSetConnectAttr(ConnectionHandle, Attribute, ValuePtr, 0)  
    
  • Se fOption indicar um atributo de conexão definido pelo driver, o Gerenciador de Driver chamará

    SQLSetConnectAttr(ConnectionHandle, Attribute, ValuePtr, BufferLength)  
    

Nos três casos anteriores, o argumento ConnectionHandle é definido como o valor em hdbc, o argumento Attribute é definido como o valor em fOption e o argumento ValuePtr é definido como o mesmo valor que vParam.

Como o Gerenciador de Driver não sabe se o atributo de conexão definido pelo driver precisa de um valor inteiro de cadeia de caracteres ou de 32 bits, ele precisa passar um valor válido para o argumento BufferLength de SQLSetConnectAttr. Se o driver tiver definido semântica especial para atributos de conexão definidos pelo driver e precisar ser chamado usando SQLSetConnectOption, ele deverá dar suporte a SQLSetConnectOption.

Se um ODBC 2. O aplicativo x chama SQLSetConnectOption para definir uma opção de instrução específica do driver em um driver ODBC 3*.x* e a opção foi definida em um ODBC 2. X versão do driver, uma nova constante de manifesto deve ser definida para a opção no driver ODBC 3*.x*. Se a constante de manifesto antiga for usada na chamada para SQLSetConnectOption, o Gerenciador de Driver chamará SQLSetConnectAttr com o argumento StringLength definido como 0.

Para um driver ODBC 3*.x*, o Gerenciador de Driver não verifica mais se o fOption está entre SQL_CONN_OPT_MIN e SQL_CONN_OPT_MAX ou é maior que SQL_CONNECT_OPT_DRVR_START.

Definindo opções de instrução no nível de conexão

No ODBC 2. x, um aplicativo pode chamar SQLSetConnectOption para definir uma opção de instrução. Quando isso é feito, o driver estabelece a opção de instrução como um padrão para quaisquer instruções alocadas posteriormente para essa conexão. É definido pelo driver se o driver define a opção de instrução para quaisquer instruções existentes associadas à conexão especificada.

Essa capacidade foi preterida no ODBC 3*.x*. Os drivers ODBC 3*.x* só precisam de suporte para a configuração ODBC 2. X atributos de instrução no nível de conexão se eles quiserem trabalhar com o ODBC 2. x aplicativos que fazem isso. Os aplicativos ODBC 3*.x* nunca devem definir atributos de instrução no nível da conexão. Os atributos de instrução ODBC 3*.x* não podem ser definidos no nível da conexão, com exceção dos atributos SQL_ATTR_METADATA_ID e SQL_ATTR_ASYNC_ENABLE, que são atributos de conexão e atributos de instrução, e podem ser definidos no nível de conexão ou no nível da instrução.