Compartilhar via


Mapeamento SQLSetStmtOption

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

SQLSetStmtOption(StatementHandle, fOption, vParam)  

resultará da seguinte maneira:

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

    SQLSetStmtAttr(StatementHandle, fOption, ValuePtr, SQL_NTS)  
    
  • Se fOption indicar um atributo de instrução definido pelo ODBC que retorna um valor inteiro de 32 bits, o Gerenciador de Driver chamará

    SQLSetStmtAttr(StatementHandle, fOption, ValuePtr, 0)  
    
  • Se fOption indicar um atributo de instrução definido pelo driver, o Gerenciador de Driver chamará

    SQLSetStmtAttr(StatementHandle, fOption, ValuePtr, BufferLength)  
    

Nos três casos anteriores, o argumento StatementHandle é definido como o valor em hstmt, o argumento Attribute é definido como o valor em fOption e o argumento ValuePtr é definido como o valor como vParam.

Como o Gerenciador de Driver não sabe se o atributo de instruçã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 StringLength de SQLSetStmtAttr. Se o driver tiver definido semântica especial para atributos de instrução definidos pelo driver e precisar ser chamado usando SQLSetStmtOption, ele deverá dar suporte a SQLSetStmtOption.

Se um aplicativo chamar SQLSetStmtOption para definir uma opção de instrução específica do driver em um driver ODBC 3.x e a opção tiver sido definida em uma versão ODBC 2.x do driver, uma nova constante de manifesto deverá ser definida para a opção no driver ODBC 3.x . Se a constante de manifesto antiga for usada na chamada para SQLSetStmtOption, o Gerenciador de Driver chamará SQLSetStmtAttr com o argumento StringLength definido como 0.

Quando um aplicativo chama SQLSetStmtAttr para definir SQL_ATTR_USE_BOOKMARKS como SQL_UB_ON em um driver ODBC 3.x , o atributo de instrução SQL_ATTR_USE_BOOKMARKS é definido como SQL_UB_FIXED. SQL_UB_ON é a mesma constante que SQL_UB_FIXED. O Gerenciador de Driver passa SQL_UB_FIXED para o motorista. SQL_UB_FIXED foi preterido no ODBC 3.x, mas um driver ODBC 3.x deve implementá-lo para trabalhar com aplicativos ODBC 2.x que usam indicadores de comprimento fixo.

Para um driver ODBC 3.x , o Gerenciador de Driver não verifica mais se Option está entre SQL_STMT_OPT_MIN e SQL_STMT_OPT_MAX ou é maior que SQL_CONNECT_OPT_DRVR_START.