Criação de uma Aplicação de Driver

Aplica-se a: SQL ServerBase de Dados SQL do AzureAzure SQL Managed InstanceAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)

Importante

SQL Server Native Client (SNAC) não é fornecido com:

  • SQL Server 2022 (16.x) e versões posteriores
  • SQL Server Management Studio 19 e versões posteriores

O SQL Server Native Client (SQLNCLI ou SQLNCLI11) e o Microsoft OLE DB Provider for SQL Server (SQLOLEDB) herdado não são recomendados para o desenvolvimento de novos aplicativos.

Para novos projetos, use um dos seguintes drivers:

Para o SQLNCLI fornecido como componente do Mecanismo de Base de Dados do SQL Server (versões de 2012 a 2019), consulte esta exceção ao Ciclo de Vida de Suporte .

A arquitetura ODBC tem quatro componentes que desempenham as seguintes funções.

Componente Função
Application Chama funções ODBC para comunicar com uma fonte de dados ODBC, submete instruções SQL e processa conjuntos de resultados.
Gestor de Pilotos Gerir a comunicação entre uma aplicação e todos os drivers ODBC usados pela aplicação.
Driver Processa todas as chamadas de funções ODBC da aplicação, liga-se a uma fonte de dados, passa instruções SQL da aplicação para a fonte de dados e devolve os resultados à aplicação. Se necessário, o driver traduz ODBC SQL da aplicação para SQL nativo usado pela fonte de dados.
Origem de dados Contém toda a informação que um driver precisa para aceder a uma instância específica de dados num SGBD.

Uma aplicação que utiliza o driver ODBC do SQL Server Native Client para comunicar com uma instância do SQL Server executa as seguintes tarefas:

  • Liga-se a uma fonte de dados

  • Envia instruções SQL para a fonte de dados

  • Processa os resultados das declarações da fonte de dados

  • Processa erros e mensagens

  • Termina a ligação à fonte de dados

Uma aplicação mais complexa escrita para o driver ODBC do SQL Server Native Client pode também desempenhar as seguintes tarefas:

  • Use cursores para controlar a localização num conjunto de resultados

  • Operações de request commit ou rollback para controlo de transações

  • Realizar transações distribuídas envolvendo dois ou mais servidores

  • Executar procedimentos armazenados no servidor remoto

  • O catálogo de chamadas serve para inquirir sobre os atributos de um conjunto de resultados

  • Realizar operações de cópia em massa

  • Gerir grandes operações de dados (varchar(max), nvarchar(max) e varbinary(max )) operações

  • Use lógica de reconexão para facilitar o failover quando o espelhamento de base de dados está configurado

  • Dados de desempenho dos registos e consultas de longa duração

Para fazer chamadas de função ODBC, uma aplicação em C ou C++ deve incluir os ficheiros de cabeçalho sql.h, sqlext.h e sqltypes.h. Para fazer chamadas às funções da API do instalador ODBC, uma aplicação deve incluir o ficheiro de cabeçalho odbcinst.h. Uma aplicação Unicode ODBC deve incluir o ficheiro cabeçalho sqlucode.h. As aplicações ODBC devem estar ligadas ao ficheiro odbc32.lib. As aplicações ODBC que chamam as funções da API do instalador ODBC devem estar ligadas ao ficheiro odbccp32.lib. Estes ficheiros estão incluídos no Windows Platform SDK.

Muitos drivers ODBC, incluindo o driver ODBC do SQL Server Native Client, oferecem extensões ODBC específicas para cada driver. Para tirar partido das extensões específicas do driver ODBC do SQL Server Native Client, uma aplicação deve incluir o ficheiro de cabeçalho sqlncli.h. Este ficheiro de cabeçalho contém:

  • Atributos de ligação específicos do driver ODBC do SQL Server.

  • Atributos específicos de instruções ODBC para o SQL Server Native Client.

  • Atributos de coluna específicos do driver ODBC do SQL Server Native Client.

  • Tipos de dados específicos do SQL Server.

  • Tipos de dados definidos por utilizador específicos do SQL Server.

  • SQL Server Native Client ODBC tipos SQLGetInfo específicos do driver.

  • Campos de diagnóstico de drivers 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 nativos C específicos de SQL Server (devolvidos quando as colunas são atribuídas ao tipo de dado C SQL_C_BINARY).

  • Definição de tipo para a estrutura de dados SQLPERF.

  • Macros e protótipos de cópia em massa para suportar a utilização de API de cópia em massa através de uma ligação ODBC.

  • Chame as funções de API de metadados de consulta distribuídas para listas de servidores ligados e seus catálogos.

Qualquer aplicação ODBC em C ou C++ que utilize a funcionalidade de cópia em massa do driver ODBC do SQL Server Native Client deve estar ligada ao ficheiro sqlncli11.lib. As aplicações que chamam as funções da API de metadados de consulta distribuídas também devem estar ligadas ao sqlncli11.lib. Os ficheiros sqlncli.h e sqlncli11.lib são distribuídos como parte das ferramentas do programador do SQL Server. Os diretórios Include e Lib do SQL Server devem estar nos caminhos INCLUDE e LIB do compilador, conforme o seguinte:

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 tomada no início do processo de construção de uma aplicação é se a aplicação precisa de ter várias chamadas ODBC em curso ao mesmo tempo. Existem dois métodos para suportar múltiplas chamadas ODBC simultâneas, que são descritos nos tópicos restantes desta secção. Para mais informações, consulte a Referência do Programador ODBC.

Na presente seção