Korzystanie z natywnego nagłówka klienta i plików biblioteki SQL Server

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Ważna

Klient natywny SQL Servera (SNAC) nie jest dostarczany z:

  • SQL Server 2022 (16.x) i nowsze wersje
  • SQL Server Management Studio 19 i nowsze wersje

Program SQL Server Native Client (SQLNCLI lub SQLNCLI11) oraz starszy dostawca microsoft OLE DB dla programu SQL Server (SQLOLEDB) nie są zalecane w przypadku tworzenia nowych aplikacji.

W przypadku nowych projektów użyj jednego z następujących sterowników:

W przypadku programu SQLNCLI dostarczanego jako składnik aparatu bazy danych programu SQL Server (wersje 2012–2019), proszę sprawdzić wyjątek cyklu wsparcia .

Nagłówek i pliki biblioteki klienta natywnego SQL Server są instalowane w SQL Server. Podczas tworzenia aplikacji ważne jest, aby skopiować i zainstalować wszystkie wymagane pliki do rozwoju w swoim środowisku programistycznym. Aby uzyskać więcej informacji o instalacji i redystrybucji natywnego klienta SQL Server, zobacz Instalacja natywnego klienta SQL Server.

Nagłówek i pliki biblioteki klienta natywnego klienta SQL Server są zainstalowane w następującym miejscu:

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

Plik nagłówka natywnego klienta SQL Server (sqlncli.h) może być użyty do dodania funkcji dostępu do danych natywnego klienta SQL Server do własnych aplikacji. Plik nagłówka natywnego klienta SQL Server zawiera wszystkie definicje, atrybuty, właściwości i interfejsy potrzebne do wykorzystania nowych funkcji wprowadzonych w SQL Server 2005 (9.x).

Oprócz pliku nagłówka SQL Server Native Client, istnieje także plik biblioteki sqlncli11.lib, który służy do eksportu funkcjonalności SQL Server Bulk Copy Program (BCP) dla ODBC.

Plik nagłówka natywnego klienta SQL Server jest kompatybilny wstecznie zarówno z plikami nagłówka sqloledb.h, jak i odbcss.h używanymi w Microsoft Data Access Components (MDAC), ale nie zawiera CLSID dla SQLOLEDB (dostawcy OLE DB dla SQL Server dołączonego do MDAC) ani symboli dla funkcjonalności XML (które nie są obsługiwane przez SQL Server Native Client).

Aplikacje ODBC nie mogą odwoływać się do nagłówka natywnego klienta SQL Server (sqlncli.h) oraz odbcss.h w tym samym programie. Nawet jeśli nie korzystasz z żadnej z funkcji wprowadzonych w SQL Server 2005 (9.x), plik nagłówka natywnego klienta SQL Server zadziała zamiast starszego odbcss.h.

Aplikacje OLE DB korzystające z dostawcy SQL Server Native Client OLE DB muszą jedynie odwoływać się do sqlncli.h. Jeśli aplikacja korzysta zarówno z MDAC (SQLOLEDB), jak i dostawcy SQL Server Native Client OLE DB, może odwoływać się zarówno do sqloledb.h, jak i sqlncli.h, ale najpierw musi być odniesienie do sqloledb.h.

Używanie natywnego pliku nagłówka klienta SQL Server

Aby użyć pliku nagłówka natywnego klienta SQL Server, musisz użyć instrukcji include w swoim kodzie programistycznym C/C++. Poniższe sekcje opisują, jak to zrobić zarówno dla aplikacji OLE DB, jak i ODBC.

Uwaga / Notatka

Nagłówek i pliki biblioteki klienta natywnego SQL Server można kompilować tylko w Visual Studio C++ 2002 lub nowszym.

OLE DB

Aby użyć pliku nagłówka natywnego klienta SQL Server w aplikacji OLE DB, używając następujących linii kodu programistycznego:

#define _SQLNCLI_OLEDB_  
include "sqlncli.h";  

Uwaga / Notatka

Pierwsza linia kodu pokazana powyżej powinna być pomijana, jeśli aplikacja korzysta zarówno z API OLE DB, jak i ODBC. Dodatkowo, jeśli aplikacja ma infikację dla sqloledb.h, po niej musi pojawić się instrukcja include dla sqlncli.h.

Tworząc połączenie ze źródłem danych przez SQL Server Natywnego Klienta, użyj "SQLNCLI11" jako ciągu nazw dostawcy.

ODBC

Aby użyć pliku nagłówka natywnego klienta SQL Server w aplikacji ODBC, używając następujących linii kodu programistycznego:

#define _SQLNCLI_ODBC_  
include "sqlncli.h";  

Uwaga / Notatka

Pierwsza linijka kodu pokazana powyżej powinna zostać pominięta, jeśli aplikacja korzysta zarówno z API OLE DB, jak i ODBC. Dodatkowo, jeśli aplikacja zawiera oświadczenie #include dla odbcss.h, powinno ono zostać usunięte.

Podczas tworzenia połączenia ze źródłem danych za pośrednictwem SQL Server Native Client, użyj "SQL Server Native Client 11.0" jako ciągu nazwy sterownika.

Nazwy komponentów i właściwości według wersji

Property Klient natywny programu SQL Server

SQL Server 2005
SQL Server Natywny Klient 10.0

SQL Server 2008
SQL Server Natywny Klient 11.0

SQL Server 2012 (11.x)
MDAC
Nazwa kierowcy ODBC Klient natywny SQL SQL Server Natywny Klient 10.0 SQL Server Natywny Klient 11.0 SQL Server
Nazwa pliku nagłówka ODBC Sqlncli.h Sqlncli.h Sqlncli.h Odbcss.h
ODBC driver DLL Sqlncli.dll Sqlncl10.dll Sqlncl11.dll sqlsrv32.dll
Plik ODBC lib dla API BCP biblioteka SQLCLI.lib Sqlncli10.lib Sqlncli11.lib Odbcbcp.lib
ODBC DLL dla API BCP Sqlncli.dll Sqlncli10.dll Sqlncli11.dll Odbcbcp.dll
OLE DB PROGID SQLNCLI SQLNCLI10 SQLNCLI11 SQLOLEDB
Nazwa pliku nagłówka OLE DB Sqlncli.h Sqlncli.h Sqlncli.h Sqloledb.h
OLE DB provider DLL Sqlncli.dll Sqlncli10.dll Sqlncli11.dll Sqloledb.dll

sqlncli.h obsługuje wiele wersji SQL Server Native Client poprzez makro SQLNCLI_VER. Domyślnie SQLNCLI_VER domyślnie przyjmuje najnowszą wersję SQL Server Native Client. Aby zbudować aplikację korzystającą z sqlncli10.dll zamiast sqlncli11.dll, ustaw SQLNCLI_VER na 10.

Statyczne łączenie i funkcje BCP

Gdy aplikacja korzysta z funkcji BCP, ważne jest, aby w parametry połączenia określić sterownik z tej samej wersji, która została dostarczona wraz z plikiem nagłówka i biblioteką użytą do kompilacji aplikacji.

Na przykład, jeśli skompilujesz aplikację za pomocą SQL Server Native Client, a powiązany plik biblioteczny (sqlncli11.lib) i plik nagłówka (sqlncli.h) z pliku \Program Files\Microsoft SQL Server\110\SDK, upewnij się, że określisz (na przykładzie ODBC) "DRIVER={SQL Server Native Client 11.0}" w parametry połączenia.

Więcej informacji można znaleźć w artykule Wykonywanie operacji kopiowania masowego.