Compartilhar via


Matriz de compatibilidade

A tabela a seguir descreve a compatibilidade dos tipos de aplicativos e drivers definidos anteriormente nesta seção.

Tipo de aplicativo

e versão
ODBC de 32 bits

Driver 2.x
ODBC 3.x

controlador
Driver ODBC 3.8 Driver compatível com ISO e Open Group
Aplicativo de 16 bits, qualquer versão Compatível Compatível Compatível Compatível
Aplicativo Pure 2.x Compatível Compatível Compatível Não compatível[3]
Aplicativo recompilado puro 2.x Compatível Compatível[1] Compatível[1] Não compatível[3]
Aplicativo Unicode Puro 2.x Compatível Compatível[1] Compatível[1] Não compatível[3]
Puro Grupo Aberto e aplicativo em conformidade com ISO Não compatível Compatível[2] Compatível[2] Compatível[2]
Aplicativo Pure 3.0 Não compatível Compatível Compatível Não compatível[4]
Aplicativo Pure 3.5 Não compatível Compatível Compatível Não compatível[4]
Aplicativo Pure 3.8 (ou superior) Não compatível [5] Não compatível [5] Compatível Não compatível [4]
Aplicativo substituído Compatível Compatível Compatível Não compatível[3]

[1] O aplicativo deve recompilar usando cabeçalhos ODBC 3.5 (ou superior) com a opção UNICODE (se for um aplicativo Unicode) e deve definir ODBCVER como 0x0250.

[2] O aplicativo deve ser compilado usando cabeçalhos ODBC 3.5 (ou superior) e vincular com o Gerenciador de Driver ODBC. Ele também deve definir o sinalizador de cabeçalho ODBC_STD.

[3] Essa configuração pode potencialmente não funcionar porque há recursos no ODBC 2.x que não estão nos padrões, como bookmarks.

[4] Essa configuração pode falhar em funcionar porque há recursos no ODBC 3.x que não estão nos padrões, como marcadores.

[5] Essa configuração pode potencialmente falhar porque há recursos no ODBC 3.8 que não estão em drivers ODBC 2.x ou 3.x, como tipos de dados C específicos do driver no ODBC.

Compatibilidade do Gerenciador de Driver

Um aplicativo ODBC 3.0 que deve operar com todas as versões do Gerenciador de Driver deve fazer o seguinte na inicialização:

  • Alocar um identificador de ambiente.

  • Defina o atributo de ambiente SQL_ATTR_ODBC_VERSION como SQL_OV_ODBC3_80. Se o Gerenciador de Driver retornar SQL_ERROR, o Gerenciador de Driver é mais antigo que 3,8. Redefina SQL_ATTR_ODBC_VERSION para SQL_OV_ODBC3 ou SQL_OV_ODBC2, conforme apropriado, para corresponder ao Gerenciador de Driver.

  • Alocar um identificador de conexão.

  • Estabeleça uma conexão.

  • Chame SQLGetInfo para SQL_DRIVER_ODBC_VER para determinar a versão do driver. Se o driver for um driver ODBC 3.8, você poderá utilizar tipos C específicos do driver. Caso contrário, não use tipos de dados específicos do driver em C.

Observe que um aplicativo ODBC 3.x recompilado pode usar recursos ODBC 3.8 diferentes de tipos C específicos do driver sem especificar SQL_OV_ODBC3_80 para SQL_ATTR_ODBC_VERSION. Isso é semelhante a um aplicativo ODBC 2.x recompilado usando recursos ODBC 3.x.

Usando SQLCancelHandle em um aplicativo compatível com todos os Gerenciadores de Driver

Como a função SQLCancelHandle não tem suporte em Gerenciador de Driver que foram lançados antes do Windows 7, um aplicativo não poderá ser carregado em versões mais antigas do Windows se chamar SQLCancelHandle diretamente. Para trabalhar com todas as versões do Driver Managers e usar SQLCancelHandle em novas versões do Windows, um aplicativo deve chamar SQLCancelHandle indiretamente usando LoadLibrary e GetProcAddress.

Consulte Também

Novidades no ODBC 3.8