使用 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}”字符串。
有关详细信息,请参阅执行大容量复制操作。
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈