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.