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 SQL Server Native Client para se comunicar com uma instância do SQL Server executa as seguintes tarefas:
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 SQL Server Native Client também pode executar as seguintes tarefas:
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 grandes operações de dados (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 SQL Server Native Client, oferecem extensões ODBC específicas do driver. Para aproveitar SQL Server Native Client extensões específicas do driver ODBC, um aplicativo deve incluir o arquivo de cabeçalho sqlncli.h. Esse arquivo de cabeçalho contém:
SQL Server Native Client atributos de conexão específicos do driver ODBC.
SQL Server Native Client atributos de instrução específicos do driver ODBC.
SQL Server Native Client atributos de coluna específicos do driver ODBC.
SQL Server tipos de dados específicos.
SQL Server tipos de dados definidos pelo usuário específicos.
SQL Server Native Client tipos SQLGetInfo específicos do driver ODBC.
SQL Server Native Client campos de diagnóstico do driver ODBC.
SQL Server códigos de função dinâmica de diagnóstico específicos.
Definições de tipo C/C++ para tipos de dados C nativos específicos de SQL Server (retornados quando colunas 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 use o recurso de cópia em massa do SQL Server Native Client driver ODBC deve estar vinculado ao arquivo sqlncli11.lib. Aplicativos que chamam as funções de API de metadados de consulta distribuída também devem ser vinculados ao sqlncli11.lib. Os arquivos sqlncli.h e sqlncli11.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 como nos seguintes:
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 ODBC.