使用 SQL Server Native Client 头文件和库文件

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)

重要

已从 SQL Server 2022 (16.x) 和 SQL Server Management Studio 19 (SSMS) 中删除SQL Server Native Client(通常缩写为 SNAC)。 不建议在新应用程序开发工作中使用 SQL Server Native Client(SQLNCLI 或 SQLNCLI11)和旧版 Microsoft OLE DB Provider for SQL Server (SQLOLEDB)。 请在此后切换为使用新版 Microsoft OLE DB Driver (MSOLEDBSQL) for SQL Server 或最新版的 Microsoft OLE DB Driver for SQL Server。 对于作为 SQL Server 数据库引擎组件随附的 SQLNCLI (版本 2012 到 2019) ,请参阅此支持生命周期异常

SQL Server Native Client 头文件和库文件随 SQL Server 一起安装。 开发应用程序时,应将开发所需的所有文件复制到开发环境并进行安装,这一点非常重要。 有关安装和重新分发SQL Server Native Client的详细信息,请参阅安装SQL Server Native Client

SQL Server Native Client头文件和库文件安装在以下位置:

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

sqlncli.h) (SQL Server Native Client 头文件可用于向自定义应用程序添加SQL Server Native Client数据访问功能。 SQL Server Native Client 头文件包含利用 SQL Server 2005 (9.x) 中引入的新功能所需的所有定义、属性、属性和接口。

除了 SQL Server Native Client 头文件外,还有一个 sqlncli11.lib 库文件,该文件是 odbc SQL Server 大容量复制程序 (BCP) 功能的导出库。

SQL Server Native Client头文件向后兼容与 microsoft 数据访问组件 (MDAC) 一起使用的 sqloledb.h 和 odbcss.h 头文件,但不包含 SQLOLEDB (MDAC) 中包含的 SQL Server OLE DB 提供程序的 CLSD 或 XML 功能 (不支持的 OLE DB 提供程序SQL Server Native Client) 。

ODBC 应用程序不能在同一程序中引用 sqlncli.h) 和 odbcss.h (SQL Server Native Client 标头。 即使未使用 SQL Server 2005 (9.x) 中引入的任何功能,SQL Server Native Client头文件也能代替旧的 odbcss.h。

使用 SQL Server Native Client OLE DB 访问接口的 OLE DB 应用程序只需引用 sqlncli.h。 如果应用程序同时使用 MDAC (SQLOLEDB) 和 SQL Server Native Client OLE DB 访问接口,则它可以同时引用 sqloledb.h 和 sqlncli.h,但必须首先引用 sqloledb.h。

使用 SQL Server Native Client 头文件

若要使用 SQL Server Native Client 头文件,必须在 C/C++ 编程代码中使用 include 语句。 以下部分说明如何在 OLE DB 和 ODBC 应用程序中使用该头文件。

注意

SQL Server Native Client头文件和库文件只能使用 Visual Studio C++ 2002 或更高版本进行编译。

OLE DB

若要在 OLE DB 应用程序中使用 SQL Server Native Client 头文件,请使用以下编程代码行:

#define _SQLNCLI_OLEDB_  
include "sqlncli.h";  

注意

如果应用程序同时使用 OLE DB 和 ODBC API,应省略上面显示的第一行代码。 此外,如果应用程序具有 sqloledb.h 的 include 语句,则 sqlncli.h 的 include 语句必须位于它之后。

通过 SQL Server Native Client 创建与数据源的连接时,请使用“SQLNCLI11”作为提供程序名称字符串。

ODBC

若要在 ODBC 应用程序中使用 SQL Server Native Client 头文件,请使用以下编程代码行:

#define _SQLNCLI_ODBC_  
include "sqlncli.h";  

注意

如果应用程序同时使用 OLE DB 和 ODBC API,则应省略上面所示的第一行代码。 此外,如果应用程序的 odbcss.h 具有 #include 语句,则应删除该语句。

通过 SQL Server Native Client 创建与数据源的连接时,请使用“SQL Server Native Client 11.0”作为驱动程序名称字符串。

基于版本的组件名称和属性

属性 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
ODBC 驱动程序名称 SQL Native Client SQL Server Native Client 10.0 SQL Server Native Client 11.0 SQL Server
ODBC 头文件名 Sqlncli.h Sqlncli.h Sqlncli.h Odbcss.h
ODBC 驱动程序 DLL Sqlncli.dll Sqlncl10.dll Sqlncl11.dll sqlsrv32.dll
BCP API 的 ODBC 库文件 Sqlncli.lib Sqlncli10.lib Sqlncli11.lib Odbcbcp.lib
BCP API 的 ODBC DLL Sqlncli.dll Sqlncli10.dll Sqlncli11.dll Odbcbcp.dll
OLE DB PROGID SQLNCLI SQLNCLI10 SQLNCLI11 SQLOLEDB
OLE DB 头文件名 Sqlncli.h Sqlncli.h Sqlncli.h Sqloledb.h
OLE DB 访问接口 DLL Sqlncli.dll Sqlncli10.dll Sqlncli11.dll Sqloledb.dll

sqlncli.h 通过 SQLNCLI_VER 宏支持多个版本的 SQL Server Native Client。 默认情况下,SQLNCLI_VER默认为最新版本的 SQL Server Native Client。 若要生成使用 sqlncli10.dll 而非 sqlncli11.dll 的应用程序,请将 SQLNCLI_VER 设置为 10。

静态链接和 BCP 函数

在某一应用程序使用 BCP 函数时,对于该应用程序十分需要特别注意的是,应在连接字符串中指定来自用于编译该应用程序的头文件和库随附的相同版本的驱动程序。

例如,如果使用 SQL Server Native Client 编译应用程序,并且关联的库文件 (sqlncli11.lib) 和头文件 (sqlncli.h) \Program Files\Microsoft SQL Server\110\SDK,请确保在连接中使用 ODBC 作为示例指定 () “DRIVER={SQL Server Native Client 11.0}”字符串。

有关详细信息,请参阅执行大容量复制操作

另请参阅

使用 SQL Server Native Client 生成应用程序