Drivers e aplicativos em conformidade com padrões
Um aplicativo ou driver compatível com padrões está em conformidade com a especificação CAE de grupo aberto "Gerenciamento de dados: interface de nível de chamada (CLI) SQL" e a interface de nível de chamada (SQL/CLI) ISO/IEC 9075-3:1995 (E).
O ODBC 3.x garante os seguintes recursos:
Um aplicativo escrito nas especificações de CLI Open Group e ISO funcionará com um driver ODBC 3.x ou um driver em conformidade com os padrões quando for compilado com os arquivos de cabeçalho ODBC 3.x e vinculado a bibliotecas ODBC 3.x e quando obtiver acesso ao driver por meio do Gerenciador de Driver ODBC 3.x.
Um driver escrito nas especificações de CLI Open Group e ISO funcionará com um aplicativo ODBC 3.x ou um aplicativo em conformidade com os padrões quando for compilado com os arquivos de cabeçalho ODBC 3.x e vinculado a bibliotecas ODBC 3.x e quando o aplicativo obtiver acesso ao driver por meio do Gerenciador de Driver ODBC 3.x.
Aplicativos e drivers em conformidade com os padrões são compilados com o sinalizador de compilação ODBC_STD.
Aplicativos em conformidade com os padrões exibem o seguinte comportamento:
Se um aplicativo em conformidade com os padrões chamar SQLAllocEnv (o que pode ocorrer porque SQLAllocEnv é uma função válida na CLI Open Group e ISO), a chamada será mapeada para SQLAllocHandleStd no tempo de compilação. Assim, em tempo de execução, o aplicativo chama SQLAllocHandleStd. Durante o processamento dessa chamada, o Gerenciador de Driver define o atributo de ambiente SQL_ATTR_ODBC_VERSION como SQL_OV_ODBC3. Uma chamada para SQLAllocHandleStd é equivalente a uma chamada para SQLAllocHandle com um HandleType de SQL_HANDLE_ENV e uma chamada para SQLSetEnvAttr para definir SQL_ATTR_ODBC_VERSION como SQL_OV_ODBC3.
Se um aplicativo em conformidade com os padrões chamar SQLBindParam (o que pode ocorrer porque SQLBindParam é uma função válida no Open Group e ISO CLI), o ODBC 3.x Driver Manager mapeará a chamada para a chamada equivalente em SQLBindParameter. (Confira Mapeamento SQLBindParam no Apêndice G: Diretrizes de driver para compatibilidade com versões anteriores.)
Para alinhamento com a CLI ISO, os arquivos de cabeçalho ODBC 3.x contêm aliases para os tipos de informações usados em chamadas para SQLGetInfo. Um aplicativo em conformidade com os padrões pode usar esses aliases em vez dos tipos de informações ODBC 3.x. Confira o próximo tópico, Arquivos de cabeçalho, para obter mais informações.
Um aplicativo em conformidade com os padrões deve verificar se todos os recursos aos quais ele dá suporte são compatíveis com o driver com o qual ele vai trabalhar. Definir o atributo de instrução SQL_ATTR_CURSOR_SCROLLABLE como SQL_SCROLLABLE e definir o atributo de instrução SQL_ATTR_CURSOR_SENSITIVITY como SQL_INSENSITIVE ou SQL_SENSITIVE são recursos opcionais disponíveis nos padrões, mas não estão incluídos no nível ODBC 3.x Core, portanto, podem não ser compatíveis com todos os drivers ODBC 3.x. Se um aplicativo em conformidade com os padrões usar esses recursos, ele deverá verificar se o driver com o qual ele vai trabalhar dá suporte a eles.