O que é o ODBC?
Existem muitos equívocos sobre o ODBC no mundo da computação. Para o usuário final, ele é um ícone no Microsoft® Windows® Painel de Controle. Para o programador de aplicativos, é uma biblioteca que contém rotinas de acesso a dados. Para muitos outros, é a resposta para todos os problemas de acesso ao banco de dados já imaginados.
Em primeiro lugar, o ODBC é uma especificação para uma API de banco de dados. Essa API é independente de qualquer DBMS ou sistema operacional; embora esse manual use C, a API ODBC é independente de linguagem. A API ODBC baseia-se nas especificações da CLI do Open Group e do ISO/IEC. ODBC 3. x implementa totalmente essas duas especificações - versões anteriores do ODBC eram baseadas em versões preliminares dessas especificações, mas não as implementavam totalmente - e adiciona recursos comumente necessários para desenvolvedores de aplicativos de banco de dados baseados em tela, como cursores roláveis.
As funções na API ODBC são implementadas por desenvolvedores de drivers específicos do DBMS. Os aplicativos chamam as funções nesses drivers para acessar dados de maneira independente do DBMS. Um Gerenciador de Driver gerencia a comunicação entre aplicativos e drivers.
Embora a Microsoft forneça um gerenciador de driver para computadores que executam o Microsoft Windows® 95 e posterior, escreveu vários drivers ODBC e chama funções ODBC de alguns de seus aplicativos, qualquer pessoa pode escrever aplicativos e drivers ODBC. Na verdade, a grande maioria dos aplicativos e drivers ODBC disponíveis hoje são escritos por empresas diferentes da Microsoft. Além disso, existem drivers e aplicativos ODBC no Macintosh® e em uma variedade de plataformas UNIX.
Para ajudar os desenvolvedores de aplicativos e driver, a Microsoft oferece um SDK (Software Development Kit) ODBC para computadores que executam o Windows 95 e posterior que fornece o gerenciador de driver, a DLL do instalador, as ferramentas de teste e os aplicativos de exemplo. A Microsoft se uniu ao Visigenic Software para portar esses SDKs para o Macintosh e uma variedade de plataformas UNIX.
É importante entender que o ODBC foi projetado para expor recursos de banco de dados, não complementá-los. Portanto, os gravadores de aplicativos não devem esperar que o uso do ODBC transforme repentinamente um banco de dados simples em um mecanismo de banco de dados relacional totalmente em destaque. Também não se espera que os gravadores de driver implementem a funcionalidade não encontrada no banco de dados subjacente. Uma exceção a isso é que os desenvolvedores que gravam drivers que acessam diretamente dados de arquivo (como dados em um arquivo Xbase) são necessários para gravar um mecanismo de banco de dados que dê suporte a pelo menos funcionalidade mínima do SQL. Outra exceção é que o componente ODBC do SDK do Windows, anteriormente incluído no SDK do MDAC (Microsoft Data Access Components), fornece uma biblioteca de cursores que simula cursores roláveis para drivers que implementam um determinado nível de funcionalidade.
Os aplicativos que usam ODBC são responsáveis por qualquer funcionalidade entre bancos de dados. Por exemplo, o ODBC não é um mecanismo de junção heterogêneo, nem é um processador de transações distribuídas. No entanto, como ele é independente do DBMS, ele pode ser usado para criar essas ferramentas entre bancos de dados.