Criando um aplicativo de driver ODBC do SQL Server Native Client
A arquitetura ODBC tem quatro componentes que executam as funções a seguir.
Componente |
Função |
---|---|
Aplicativo |
Chama funções ODBC para se comunicar com uma fonte de dados ODBC, envia instruções SQL e processa os conjuntos de resultados. |
Gerenciador de Driver |
Gerencia a comunicação entre um aplicativo e todos os drivers ODBC usados por ele. |
Driver |
Processa todas as chamadas de funções ODBC do aplicativo, conecta-se a uma fonte de dados, passa instruções SQL do aplicativo para a fonte de dados e retorna os resultados para o aplicativo. Se necessário, o driver converte SQL ODBC do aplicativo em SQL nativo usado pela fonte de dados. |
Fonte de dados |
Contém todas as informações necessárias a um driver para acessar uma instância específica de dados em um DBMS. |
Um aplicativo que usa o driver ODBC do SQL Server Native Client para se comunicar com uma instância do SQL Server executa as tarefas a seguir:
Conecta-se com uma fonte de dados
Envia instruções SQL para a fonte de dados
Processa os resultados das instruções da fonte de dados
Processa erros e mensagens
Finaliza a conexão com a fonte de dados
Um aplicativo mais complexo escrito para o driver ODBC do SQL Server Native Client também pode executar as tarefas a seguir:
Usar cursores para controlar o local em um conjunto de resultados
Solicitar operações de confirmação ou reversão para o controle de transações
Executar transações distribuídas que envolvem dois ou mais servidores
Executar procedimentos armazenados no servidor remoto
Chamar funções de catálogo para perguntar sobre os atributos de um conjunto de resultados
Executar operações de cópia em massa
Gerenciar operações de dados grandes (colunas varchar(max), nvarchar(max) e varbinary(max))
Usar lógica de reconexão para facilitar o failover quando o espelhamento de banco de dados é configurado
Registrar dados de desempenho e consultas de execução demorada
Para fazer chamadas de função ODBC, um aplicativo C ou C++ deve incluir os arquivos de cabeçalhos sql.h, sqlext.h e sqltypes.h. Para fazer chamadas às funções de API do instalador ODBC, um aplicativo deve incluir o arquivo de cabeçalho odbcinst.h. Um aplicativo ODBC Unicode deve incluir o arquivo de cabeçalho sqlucode.h. Os aplicativos ODBC devem ser vinculados ao arquivo odbc32.lib. Os aplicativos ODBC que chamam as funções de API do instalador ODBC devem ser vinculados ao arquivo odbccp32.lib. Esses arquivos são incluídos no SDK da Plataforma Windows.
Muitos drivers ODBC, incluindo o driver ODBC do SQL Server Native Client, oferecem extensões ODBC específicas de driver. Para tirar proveito das extensões específicas de driver ODBC do SQL Server Native Client, um aplicativo deve incluir o arquivo de cabeçalho sqlncli.h. Esse arquivo de cabeçalho contém:
Atributos de conexão específicos de driver ODBC do SQL Server Native Client.
Atributos de instrução específicos de driver ODBC do SQL Server Native Client.
Atributos de coluna específicos de driver ODBC do SQL Server Native Client.
Tipos de dados específicos do SQL Server.
Tipos de dados definidos pelo usuário específicos do SQL Server.
Tipos SQLGetInfo específicos de driver ODBC do SQL Server Native Client.
Campos de diagnóstico de driver ODBC do SQL Server Native Client.
Códigos de função dinâmica de diagnóstico específicos do SQL Server.
Definições de tipos C/C++ para tipos de dados C nativos específicos do SQL Server (retornados quando as colunas são associadas ao tipo de dados C, SQL_C_BINARY).
Definição de tipo para a estrutura de dados de SQLPERF.
Macros e protótipos de cópia em massa para oferecer suporte ao uso de APIs de cópia em massa através de uma conexão ODBC.
Chame as funções de API de metadados de consulta distribuída para listas de servidores vinculados e seus catálogos.
Qualquer aplicativo ODBC C ou C++ que usa o recurso de cópia em massa do driver ODBC do SQL Server Native Client deve ser vinculado ao arquivo sqlncli10.lib. Aplicativos que chamam as funções de API de metadados de consulta distribuída também devem ser vinculados ao sqlncli10.lib. Os arquivos sqlncli.h e sqlncli10.lib são distribuídos como parte das ferramentas do desenvolvedor do SQL Server. Os diretórios Include e Lib do SQL Server devem estar nos caminhos INCLUDE e LIB do compilador conforme o exemplo a seguir:
LIB=c:\Program Files\Microsoft Data Access SDK 2.8\Libs\x86\lib;C:\Program Files\Microsoft SQL Server\100\Tools\SDK\Lib;
INCLUDE=c:\Program Files\Microsoft Data Access SDK 2.8\inc;C:\Program Files\Microsoft SQL Server\100\Tools\SDK\Include;
Uma decisão de design que deve ser tomada no início do processo de criação de um aplicativo é se ele precisa ter várias chamadas ODBC pendentes ao mesmo tempo. Há dois métodos de suporte a várias chamadas ODBC simultâneas, que são descritos nos próximos tópicos desta seção. Para obter mais informações, consulte a Referência do Programador de ODBC.