Uma
visão Geral sobre ODBC
Autor: Vidal Martins
ODBC significa Open Database
Connectivity. É uma especificação de interface para acesso a dados,
elaborada por grupos de padronização como X/Open e SQL Access Group.
Essa especificação provê funções para conectar e desconectar fontes
de dados, preparar e executar comandos, processar erros e processar
transações.
Em termos práticos, a
ODBC permite que uma aplicação acesse simultaneamente uma variedade
de SGBD´s, relacionais e não relacionais, situados em locais diferentes,
através de uma única API (Application Programming Interface). Além
disso, ela padroniza as mensagens de erro, a interface de conexão
com as fontes de dados, os tipos de dados e, até mesmo, a linguagem
SQL utilizada, o que significa maior portabilidade do aplicativo.
A arquitetura ODBC possui
quatro componentes, conforme mostra a figura abaixo.

Aplicação: um
programa que chama funções ODBC para interagir com fontes de dados.
Driver Manager:
uma DLL (Dynamic-Link Library) que provê acesso aos drivers ODBC.
O Driver Manager carrega as DLL´s dos drivers e direciona chamadas
a funções ODBC ao driver correto. Ele também verifica algumas condições
de erro e processa algumas chamadas a funções ODBC.
Driver: uma DLL
que processa chamadas a funções ODBC. O driver conecta uma fonte
de dados, traduz comandos SQL e os submete à fonte de dados, recupera
informações da fonte de dados e retorna dados para a aplicação.
Se um SGBD, como Xbase, não usa SQL, o driver também tem que processar
os comandos SQL.
Fonte de Dados:
os dados que um usuário deseja acessar, o SGBD associado, a plataforma
na qual reside o SGBD, e a rede usada para acessar a plataforma.
Por exemplo, uma fonte de dados pode ser um SGBD Oracle, rodando
sobre sistema operacional OS/2, acessado por Novell Netware; ou
um arquivo Xbase local, para o qual o driver serve como SGBD; entre
outros.
Existe um subconjunto
da gramática SQL que é chamado SQL Mínimo. O SQL Mínimo acrescido
de algumas funcionalidades forma o SQL Núcleo. A gramática completa
do SQL é conhecida como SQL Estendido. Da mesma forma, existe um
subconjunto da API ODBC que é chamado de API Núcleo. Adicione algumas
funções à API e você terá a API Nível 1. A API completa é chamada
de API Nível 2.
Um driver pode ser escrito
para ter conformidade com um certo nível de API e com um determinado
nível de SQL. Por exemplo, existe um driver para o SQL Server 4.21
que tem conformidade com a API Nível 1 e com o SQL Mínimo.
Quando se diz que um
driver é compatível com o nível 1, isto significa que ele implementa
toda a API Nível 1. Porém, o driver pode também implementar algumas
características da API Nível 2, isso não é proibido. Da mesma forma,
se um driver é compatível com SQL Mínimo, isto significa que ele
pode implementar muitas outras características do SQL Núcleo e do
SQL Estendido, mas não todas. As aplicações podem consultar o próprio
driver para identificar seu nível de conformidade com API e SQL
e, então, usar essa informação para escalar a capacidade do driver.
Uma aplicação simples
deve realizar as seguintes tarefas, para interagir com uma fonte
de dados:
- Conectar com a fonte
de dados. Para isso, deve-se especificar o nome da fonte de dados
e informações adicionais, tais como: login id, password, nome
do banco de dados, etc.
- Colocar o comando
SQL em um buffer e estabelecer os valores dos parâmetros, caso
o comando inclua marcadores de parâmetros.
- Chamar uma função
da API para executar o comando.
- O backend, ou o driver,
vai processar o comando SQL. Esse comando pode retornar resultados
(SELECT), não retornar nada (INSERT, UPDATE, DELETE), ou retornar
mensagens de erro. Nos casos em que não há erro, o comando SQL
pode retornar mensagens informativas.
- Se o comando retornar
um result set, a aplicação deve associar um nome de cursor ao
comando, ou permitir que o driver faça isso. A aplicação pode
analisar os atributos do result set, tais como: o número de colunas,
o nome e o tipo de dado específico de uma coluna.
- Se o comando causar
um erro, a aplicação deve recuperar do driver as informações de
erro e tomar as atitudes apropriadas.
- Fechar a conexão quando
finalizar a interação com a fonte de dados.
vidal@lepus.celepar.br

|