Partilhar via


Matriz de compatibilidade

A tabela seguinte descreve a compatibilidade dos tipos de aplicações e drivers definidos anteriormente nesta secção.

Tipo de aplicação

e versão
ODBC de 32 bits

Driver 2.x
ODBC 3.x

driver
Driver ODBC 3.8 Driver compatível com ISO e Open Group
Aplicação de 16 bits, qualquer versão Compatível Compatível Compatível Compatível
Uma aplicação pura 2.x Compatível Compatível Compatível Não compatível[3]
Aplicação 2.x pura recompilada Compatível Compatível[1] Compatível[1] Não compatível[3]
Aplicação pura Unicode 2.x Compatível Compatível[1] Compatível[1] Não Compatível[3]
Puro Open Group e aplicação compatível com ISO Não compatível Compatível[2] Compatível[2] Compatível[2]
Aplicação pura 3.0 Não compatível Compatível Compatível Não compatível[4]
Aplicação pura 3.5 Não compatível Compatível Compatível Não compatível[4]
Aplicação Pure 3.8 (ou superior) Não compatível [5] Não compatível [5] Compatível Não compatível [4]
Aplicação substituída Compatível Compatível Compatível Não compatível[3]

[1] A aplicação deve recompilar usando cabeçalhos ODBC 3.5 (ou superiores) com a opção UNICODE (se for uma aplicação Unicode) e deve definir ODBCVER para 0x0250.

[2] A aplicação deve compilar usando cabeçalhos ODBC 3.5 (ou superiores) e ligar-se ao Gestor de Drivers ODBC. Também deve definir a bandeira de cabeçalho ODBC_STD.

[3] Esta configuração pode potencialmente falhar porque existem funcionalidades no ODBC 2.x que não estão nas normas, como os favoritos.

[4] Esta configuração pode potencialmente falhar porque existem funcionalidades no ODBC 3.x que não estão nas normas, como os favoritos.

[5] Esta configuração pode potencialmente falhar porque existem funcionalidades no ODBC 3.8 que não estão nos drivers ODBC 2.x ou 3.x, como os Tipos de Dados C específicos do driver no ODBC.

Compatibilidade do Gestor de Drivers

Uma aplicação ODBC 3.0 que deve operar com todas as versões do Driver Manager deve fazer o seguinte no arranque:

  • Aloca um handle de ambiente.

  • Defina o atributo de ambiente SQL_ATTR_ODBC_VERSION para SQL_OV_ODBC3_80. Se o Gestor de Drivers devolver SQL_ERROR, o Gestor de Drivers é anterior à versão 3.8. Reiniciar SQL_ATTR_ODBC_VERSION para SQL_OV_ODBC3 ou SQL_OV_ODBC2, conforme apropriado, para corresponder ao Driver Manager.

  • Aloque uma alavanca de ligação.

  • Faz uma ligação.

  • Chame o SQLGetInfo para o SQL_DRIVER_ODBC_VER para determinar a versão do driver. Se o driver for um driver ODBC 3.8, pode usar tipos C específicos do driver. Caso contrário, não utilize tipos de dados C específicos do driver.

Note que uma aplicação ODBC 3.x recompilada pode usar funcionalidades ODBC 3.8 que não sejam tipos C específicos do driver sem especificar SQL_OV_ODBC3_80 para SQL_ATTR_ODBC_VERSION. Isto é semelhante a uma aplicação ODBC 2.x recompilada usando funcionalidades ODBC 3.x.

Usar SQLCancelHandle numa Aplicação Compatível com todos os Gestores de Drivers

Como a Função SQLCancelHandle não é suportada nos Gestores de Drivers lançados antes do Windows 7, uma aplicação não pode ser carregada em versões mais antigas do Windows se chamar SQLCancelHandle diretamente. Para trabalhar com todas as versões dos Gestores de Drivers e usar SQLCancelHandle em novas versões do Windows, uma aplicação deve chamar SQLCancelHandle indiretamente usando LoadLibrary e GetProcAddress.

Ver também

Novidades no ODBC 3.8