Uso dei file di intestazione e di libreria di SQL Server Native Client

Si applica a:SQL ServerDatabase SQL diAzure Istanzagestita di SQL di Azure Azure Synapse Analytics PlatformSystem (PDW)

Importante

SQL Server Native Client (spesso abbreviato SNAC) è stato rimosso da SQL Server 2022 (16.x) e SQL Server Management Studio 19 (SSMS). SQL Server Native Client (SQLNCLI o SQLNCLI11) e il provider Microsoft OLE DB legacy per SQL Server (SQLOLEDB) non sono consigliati per lo sviluppo di nuove applicazioni. Passare al nuovo Microsoft OLE DB Driver (MSOLEDBSQL) per SQL Server o alla versione più recente di Microsoft ODBC Driver per SQL Server . Per SQLNCLI fornito come componente del motore di database di SQL Server (versioni da 2012 a 2019), vedere questa eccezione relativa al ciclo di vita del supporto.

I file di intestazione e libreria di SQL Server Native Client vengono installati con SQL Server. Quando si sviluppa un'applicazione, è importante copiare e installare nell'ambiente di sviluppo tutti i file necessari per lo sviluppo. Per altre informazioni sull'installazione e la ridistribuzione di SQL Server Native Client, vedere Installazione di SQL Server Native Client.

I file di intestazione e libreria di SQL Server Native Client vengono installati nel percorso seguente:

%PROGRAMMI%\Microsoft SQL Server\110\SDK

Il file di intestazione sql Server Native Client (sqlncli.h) può essere usato per aggiungere funzionalità di accesso ai dati di SQL Server Native Client alle applicazioni personalizzate. Il file di intestazione sql Server Native Client contiene tutte le definizioni, gli attributi, le proprietà e le interfacce necessarie per sfruttare le nuove funzionalità introdotte in SQL Server 2005 (9.x).

Oltre al file di intestazione sql Server Native Client, è disponibile anche un file di libreria sqlncli11.lib che è la libreria di esportazione per la funzionalità BCP (Bulk Copy Program) di SQL Server per ODBC.

Il file di intestazione SQL Server Native Client è compatibile con le versioni precedenti dei file di intestazione sqloledb.h e odbcss.h usati con Microsoft Data Access Components (MDAC), ma non contiene CLSID per SQLOLEDB (il provider OLE DB per SQL Server incluso con MDAC) o simboli per la funzionalità XML (non supportata da SQL Server Native Client).

Le applicazioni ODBC non possono fare riferimento all'intestazione SQL Server Native Client (sqlncli.h) e odbcss.h nello stesso programma. Anche se non si usa alcuna delle funzionalità introdotte in SQL Server 2005 (9.x), il file di intestazione sql Server Native Client funzionerà al posto di odbcss.h meno recente.

Le applicazioni OLE DB che usano il provider OLE DB di SQL Server Native Client devono fare riferimento solo a sqlncli.h. Se un'applicazione usa sia MDAC (SQLOLEDB) che il provider OLE DB di SQL Server Native Client, può fare riferimento sia a sqloledb.h che a sqlncli.h, ma il riferimento a sqloledb.h deve essere prima.

Utilizzo del file di intestazione di SQL Server Native Client

Per usare il file di intestazione di SQL Server Native Client, è necessario usare un'istruzione di inclusione all'interno del codice di programmazione C/C++. Nelle sezioni seguenti viene descritto come eseguire questa operazione sia per le applicazioni OLE DB sia per le applicazioni ODBC.

Nota

I file di intestazione e libreria di SQL Server Native Client possono essere compilati solo con Visual Studio C++ 2002 o versione successiva.

OLE DB

Per usare il file di intestazione SQL Server Native Client in un'applicazione OLE DB, usando le righe di codice di programmazione seguenti:

#define _SQLNCLI_OLEDB_  
include "sqlncli.h";  

Nota

La prima riga di codice sopra mostrata deve essere omessa se nell'applicazione vengono utilizzate API sia OLE DB che ODBC. Inoltre, se l'applicazione ha un'istruzione include per sqloledb.h, l'istruzione include per sqlncli.h deve essere successiva.

Quando si crea una connessione a un'origine dati tramite SQL Server Native Client, usare "SQLNCLI11" come stringa del nome del provider.

ODBC

Per usare il file di intestazione di SQL Server Native Client in un'applicazione ODBC, utilizzando le righe di codice di programmazione seguenti:

#define _SQLNCLI_ODBC_  
include "sqlncli.h";  

Nota

La prima riga di codice sopra mostrata deve essere omessa se nell'applicazione vengono utilizzate sia le API OLE DB che ODBC. Se inoltre nell'applicazione è presente un'istruzione #include per odbcss.h, deve essere rimossa.

Quando si crea una connessione a un'origine dati tramite SQL Server Native Client, usare "SQL Server Native Client 11.0" come stringa del nome del driver.

Proprietà e nomi dei componenti per versione

Proprietà SQL Server Native Client

SQL Server 2005
SQL Server Native Client 10.0

SQL Server 2008
SQL Server Native Client 11.0

SQL Server 2012 (11.x)
MDAC
Nome driver ODBC SQL Native Client SQL Server Native Client 10.0 SQL Server Native Client 11.0 SQL Server
Nome file di intestazione ODBC Sqlncli.h Sqlncli.h Sqlncli.h Odbcss.h
DLL del driver ODBC Sqlncli.dll Sqlncl10.dll Sqlncl11.dll sqlsrv32.dll
File di libreria ODBC per le API BCP Sqlncli.lib Sqlncli10.lib Sqlncli11.lib Odbcbcp.lib
DLL ODBC per le API BCP Sqlncli.dll Sqlncli10.dll Sqlncli11.dll Odbcbcp.dll
OLE DB PROGID SQLNCLI SQLNCLI10 SQLNCLI11 SQLOLEDB
Nome file di intestazione OLE DB Sqlncli.h Sqlncli.h Sqlncli.h Sqloledb.h
DLL del provider OLE DB Sqlncli.dll Sqlncli10.dll Sqlncli11.dll Sqloledb.dll

sqlncli.h supporta più versioni di SQL Server Native Client tramite la macro SQLNCLI_VER. Per impostazione predefinita, SQLNCLI_VER usa la versione più recente di SQL Server Native Client. Per compilare un'applicazione che utilizza sqlncli10.dll anziché sqlncli11.dll, impostare SQLNCLI_VER su 10.

Collegamento statico e funzioni BCP

Quando in un'applicazione vengono utilizzate funzioni BCP, è importante specificare nella stringa di connessione il driver della stessa versione fornita con il file di intestazione e la libreria utilizzati per compilare l'applicazione.

Ad esempio, se si compila un'applicazione usando SQL Server Native Client e il file di libreria associato (sqlncli11.lib) e il file di intestazione (sqlncli.h) da \Programmi\Microsoft SQL Server\110\SDK, assicurarsi di specificare (usando ODBC come esempio) "DRIVER={SQL Server Native Client 11.0}" nella stringa di connessione.

Per altre informazioni, vedere Esecuzione di operazioni di copia bulk.

Vedi anche

Compilazione di applicazioni con SQL Server Native Client