Utilização do cabeçalho nativo do cliente SQL Server e ficheiros de biblioteca

Aplica-se a:SQL ServerBase de Dados SQL do AzureInstância Gerida do Azure SQLAzure Synapse Analytics

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 .

O cabeçalho e os ficheiros da biblioteca do SQL Server Native Client são instalados com o SQL Server. Ao desenvolver uma aplicação, é importante copiar e instalar todos os ficheiros necessários para o desenvolvimento no seu ambiente de desenvolvimento. Para mais informações sobre a instalação e redistribuição do SQL Server Native Client, consulte Instalação do SQL Server Native Client.

O cabeçalho do SQL Server Native Client e os ficheiros da biblioteca são instalados na seguinte localização:

%PROGRAM FICHEIROS%\Microsoft SQL Server\110\SDK

O ficheiro cabeçalho SQL Server Native Client (sqlncli.h) pode ser usado para adicionar funcionalidade de acesso a dados do SQL Server Native Client às suas aplicações personalizadas. O ficheiro cabeçalho SQL Server Native Client contém todas as definições, atributos, propriedades e interfaces necessários para tirar partido das novas funcionalidades introduzidas no SQL Server 2005 (9.x).

Para além do ficheiro cabeçalho SQL Server Native Client, existe também um ficheiro de biblioteca sqlncli11.lib, que serve de biblioteca de exportação para a funcionalidade SQL Server Bulk Copy Program (BCP) para ODBC.

O ficheiro de cabeçalho SQL Server Native Client é compatível retroativamente com os ficheiros de cabeçalho sqloledb.h e odbcss.h usados com os Microsoft Data Access Components (MDAC), mas não contém CLSIDs para SQLOLEDB (o fornecedor OLE DB para SQL Server incluído com MDAC) nem símbolos para funcionalidades XML (que não são suportadas pelo SQL Server Native Client).

As aplicações ODBC não podem referenciar o cabeçalho Native Client do SQL Server (sqlncli.h) e odbcss.h no mesmo programa. Mesmo que não esteja a usar nenhuma das funcionalidades introduzidas no SQL Server 2005 (9.x), o ficheiro de cabeçalho Native Client do SQL Server funcionará em vez do antigo odbcss.h.

As aplicações OLE DB que utilizam o fornecedor OLE DB do SQL Server Native Client só precisam de referenciar sqlncli.h. Se uma aplicação usar tanto MDAC (SQLOLEDB) como o fornecedor SQL Server Native Client OLE DB, pode referenciar tanto sqloledb.h como sqlncli.h, mas a referência a sqloledb.h deve vir primeiro.

Utilização do ficheiro nativo de cabeçalho do cliente SQL Server

Para usar o ficheiro de cabeçalho Native Client do SQL Server, deve usar uma instrução include dentro do seu código de programação em C/C++. As secções seguintes descrevem como fazer isto tanto para aplicações OLE DB como ODBC.

Note

O cabeçalho e os ficheiros de biblioteca do SQL Server Native Client só podem ser compilados usando o Visual Studio C++ 2002 ou posterior.

OLE DB

Para usar o ficheiro de cabeçalho SQL Server Native Client numa aplicação OLE DB, usando as seguintes linhas de código de programação:

#define _SQLNCLI_OLEDB_  
include "sqlncli.h";  

Note

A primeira linha de código mostrada acima deve ser omitida se tanto as APIs OLE DB como ODBC forem usadas pela aplicação. Além disso, se a aplicação tiver uma instrução include para sqloledb.h, a instrução include para sqlncli.h deve vir a seguir.

Ao criar uma ligação a uma fonte de dados através SQL Server Cliente Nativo, use "SQLNCLI11" como cadeia de nomes do fornecedor.

ODBC

Para usar o ficheiro de cabeçalho Native Client do SQL Server numa aplicação ODBC, utilizando as seguintes linhas de código de programação:

#define _SQLNCLI_ODBC_  
include "sqlncli.h";  

Note

A primeira linha de código mostrada acima deve ser omitida se a aplicação utilizar tanto as APIs OLE DB como ODBC. Além disso, se a aplicação tiver uma #include declaração para odbcss.h, esta deve ser removida.

Ao criar uma ligação a uma fonte de dados através do SQL Server Native Client, use "SQL Server Native Client 11.0" como cadeia de nomes do driver.

Nomes e Propriedades dos Componentes por Versão

Property SQL Server Cliente Nativo

SQL Server 2005
SQL Server Cliente Nativo 10.0

SQL Server 2008
SQL Server Cliente Nativo 11.0

SQL Server 2012 (11.x)
MDAC
Nome do driver ODBC SQL Native Client SQL Server Cliente Nativo 10.0 SQL Server Cliente Nativo 11.0 SQL Server
Nome do ficheiro de cabeçalho ODBC Sqlncli.h Sqlncli.h Sqlncli.h Odbcss.h
ODBC driver DLL Sqlncli.dll Sqlncl10.dll Sqlncl11.dll sqlsrv32.dll
Ficheiro lib ODBC para APIs BCP Sqlncli.lib sqlncli10.lib sqlncli11.lib Odbcbcp.lib
DLL ODBC para APIs BCP Sqlncli.dll Sqlncli10.dll Sqlncli11.dll Odbcbcp.dll
OLE DB PROGID SQLNCLI SQLNCLI10 SQLNCLI11 SQLOLEDB
Nome do ficheiro do cabeçalho OLE DB Sqlncli.h Sqlncli.h Sqlncli.h Sqloledb.h
DLL do fornecedor OLE DB Sqlncli.dll Sqlncli10.dll Sqlncli11.dll Sqloledb.dll

sqlncli.h suporta múltiplas versões do SQL Server Native Client através da macro SQLNCLI_VER. Por defeito, SQLNCLI_VER utiliza por defeito a versão mais recente do SQL Server Cliente Nativo. Para construir uma aplicação que use sqlncli10.dll em vez de sqlncli11.dll, defina SQLNCLI_VER para 10.

Ligação estática e funções BCP

Quando uma aplicação utiliza funções BCP, é importante que especifique na cadeia de ligação o driver da mesma versão que veio com o ficheiro de cabeçalho e a biblioteca usados para compilar a aplicação.

Por exemplo, se compilar uma aplicação usando o SQL Server Native Client, e o ficheiro de biblioteca associado (sqlncli11.lib) e o ficheiro de cabeçalho (sqlncli.h) de \Program Files\Microsoft SQL Server\110\SDK, certifique-se de especificar (usando o ODBC como exemplo) "DRIVER={SQL Server Native Client 11.0}" no cadeia de ligação.

Para mais informações, consulte Realização de Operações de Cópia em Massa.