ODBC e a CLI padrão
O ODBC se alinha com as seguintes especificações e padrões que tratam da CLI (Interface de Nível de Chamada). (Os recursos do ODBC são um superconjunto de cada um desses padrões.)
A especificação Open Group CAE "Data Management: SQL Call-Level Interface (CLI)"
ISO/IEC 9075-3:1995 (E) Call-Level Interface (SQL/CLI)
Como resultado deste alinhamento, o seguinte é verdadeiro:
Um aplicativo escrito conforme as especificações Open Group e ISO CLI funcionará com um driver ODBC 3.x ou um driver compatível 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 conforme as especificações Open Group e ISO CLI funcionará com um aplicativo ODBC 3.x ou um aplicativo compatível com 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 obtém acesso ao driver por meio do Gerenciador de Driver ODBC 3.x. (Para obter mais informações, consulte Aplicativos e drivers compatíveis com os padrões.)
O nível de conformidade da interface Core abrange todos os recursos da CLI ISO e todos os recursos não opcionais da Open Group CLI. Recursos opcionais da Open Group CLI são mostrados em níveis mais altos de conformidade de interface. Como todos os drivers ODBC 3.x devem dar suporte aos recursos no nível de conformidade da interface Core, o seguinte é verdadeiro:
Um driver ODBC 3.x dará suporte a todos os recursos usados por um aplicativo compatível com os padrões.
Um aplicativo ODBC 3.x que use apenas os recursos da ISO CLI e os recursos não opcionais da Open Group CLI funcionará com qualquer driver compatível com os padrões.
Além das especificações de interface em nível de chamada contidas nos padrões ISO/IEC e Open Group CLI, o ODBC implementa os seguintes recursos. (Alguns desses recursos existiam em versões do ODBC anteriores ao 3.x.)
Buscas de várias linhas por uma única chamada de função
Associar a uma matriz de parâmetros
Suporte a marcadores, inclusive pesquisa por marcador, marcadores de comprimento variável e operações de atualização e exclusão em massa por marcador em linhas descontíguas
Associação de linha
Deslocamentos de associação
Suporte para lotes de instruções SQL, seja em um procedimento armazenado ou como uma sequência de instruções SQL executadas por meio de SQLExecute ou SQLExecDirect
Contagens exatas ou aproximadas de linhas do cursor
Operações de atualização e exclusão posicionadas e atualizações e exclusões em lote por chamada de função (SQLSetPos)
Funções de catálogo que extraem informações do esquema de informações sem a necessidade de dar suporte a exibições do esquema de informações
Sequências de escape para junções externas, funções escalares, literais de data e hora, literais de intervalo e procedimentos armazenados
Bibliotecas de tradução de páginas de código
Relatório do nível de conformidade ANSI de um driver e suporte SQL
Preenchimento automático sob demanda do descritor de parâmetro de implementação
Diagnósticos aprimorados e matrizes de status de linhas e parâmetros
Tipos de buffer de aplicativo de data e hora, intervalo, numérico/decimal e número inteiro de 64 bits
Execução assíncrona
Suporte a procedimentos armazenados, inclusive sequências de escape, mecanismos de vinculação de parâmetros de saída e funções de catálogo
Aprimoramentos de conexão, inclusive suporte para atributos de conexão e navegação por atributos