Partilhar via


Declarando a versão ODBC do aplicativo

Antes de uma aplicação alocar uma ligação, deve definir o atributo SQL_ATTR_ODBC_VERSION ambiente. Este atributo indica que a aplicação segue a especificação ODBC 2.x ou ODBC 3.x ao utilizar os seguintes itens:

  • SQLSTATEs. Muitos valores SQLSTATE são diferentes em ODBC 2.x e ODBC 3.x.

  • Identificadores de data, hora e carimbo temporal. A tabela seguinte mostra os identificadores de tipo para dados de data, hora e carimbo de data/hora no ODBC 2.x e ODBC 3.x.

    ODBC 2.x ODBC 3.x
    Identificadores de Tipo SQL
    SQL_DATE SQL_TYPE_DATE
    SQL_TIME SQL_TYPE_TIME
    SQL_TIMESTAMP SQL_TYPE_TIMESTAMP
    Identificadores de Tipo C
    SQL_C_DATE SQL_C_TYPE_DATE
    SQL_C_TIME SQL_C_TYPE_TIME
    SQL_C_TIMESTAMP SQL_C_TYPE_TIMESTAMP
  • Argumento CatalogNameem SQLTables. No ODBC 2.x, os caracteres coringa ("%" e "_") no argumento CatalogName são tratados literalmente. No ODBC 3.x, são tratados como caracteres coringa. Assim, uma aplicação que segue a especificação ODBC 2.x não pode usar estes caracteres como coringa e não lhes escapa quando os usa como literais. Uma aplicação que siga a especificação ODBC 3.x pode usar estes caracteres como coringa, ou pode escapar estes caracteres para usá-los como literais. Para mais informações, consulte Argumentos em Funções de Catálogo.

O Gestor de Drivers ODBC 3.x e ODBC 3.x verificam a versão da especificação ODBC para a qual uma aplicação foi escrita e respondem em conformidade. Por exemplo, se a aplicação seguir a especificação ODBC 2.x e chamar SQLExecute antes de chamar SQLPrepare, o Gestor de Drivers ODBC 3.x devolve SQLSTATE S1010 (erro de sequência de funções). Se a aplicação seguir a especificação ODBC 3.x , o Gestor de Drivers devolve SQLSTATE HY010 (erro de sequência de funções). Para mais informações, consulte Compatibilidade Retroactiva e Conformidade de Normas.

Importante

As aplicações que seguem a especificação ODBC 3.x devem usar código condicional para evitar usar funcionalidades novas do ODBC 3.x ao trabalhar com drivers ODBC 2.x . Os drivers ODBC 2.x não suportam funcionalidades novas em ODBC 3.x apenas porque a aplicação declara que segue a especificação ODBC 3.x . Além disso, os drivers ODBC 3.x não deixam de suportar funcionalidades novas no ODBC 3.x apenas porque a aplicação declara que segue a especificação ODBC 2.x .