使用 SQL Server Native Client 头文件和库文件
SQL Server Native Client 头文件和库文件随 SQL Server 一起安装。开发应用程序时,应将开发所需的所有文件复制到开发环境并进行安装,这一点非常重要。有关安装和重新分发 SQL Server Native Client 的详细信息,请参见安装 SQL Server Native Client。
SQL Server Native Client 头文件和库文件安装在以下位置:
%PROGRAM FILES%\Microsoft SQL Server\100\SDK
可以使用 SQL Server Native Client 头文件 (sqlncli.h) 向自定义应用程序添加 SQL Server Native Client 数据访问功能。SQL Server Native Client 头文件包含利用 SQL Server 2005 中引入的新功能所需的所有定义、特性、属性和接口。
除 SQL Server Native Client 头文件之外,还存在一个 sqlncli10.lib 库文件,该文件是 ODBC 的 SQL Server 大容量复制程序 (BCP) 功能的导出库。
SQL Server Native Client 头文件与用于 Microsoft 数据访问组件 (MDAC) 的 sqloledb.h 和 odbcss.h 头文件向后兼容,但不包含 SQLOLEDB 的 CLSID(MDAC 附带的 SQL Server OLE DB 访问接口)或 XML 功能的符号(SQL Server Native Client 不支持这些符号)。
ODBC 应用程序不能在同一程序中引用 SQL Server Native Client 头文件 (sqlncli.h) 和 odbcss.h。即使您不使用 SQL Server 2005 中引入的任何功能,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 创建与数据源的连接时,请将“SQLNCLI10”用作访问接口名称字符串。
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 10.0”用作驱动程序名称字符串。
基于版本的组件名称和属性
属性 |
SQL Server Native Client SQL Server 2005 |
SQL Server Native Client 10.5 SQL Server 2008 R2 |
MDAC |
---|---|---|---|
ODBC 驱动程序名称 |
SQL Server Native Client |
SQL Server Native Client 10.0 |
SQL Server |
ODBC 头文件名 |
Sqlncli.h |
Sqlncli.h |
Odbcss.h |
ODBC 驱动程序 DLL |
Sqlncli.dll |
Sqlncl10.dll |
sqlsrv32.dll |
BCP API 的 ODBC 库文件 |
Sqlncli.lib |
Sqlncli10.lib |
Odbcbcp.lib |
BCP API 的 ODBC DLL |
Sqlncli.dll |
Sqlncli10.dll |
Odbcbcp.dll |
OLE DB PROGID |
SQLNCLI |
SQLNCLI10 |
SQLOLEDB |
OLE DB 头文件名 |
Sqlncli.h |
Sqlncli.h |
Sqloledb.h |
OLE DB 访问接口 DLL |
Sqlncli.dll |
Sqlncli10.dll |
Sqloledb.dll |
sqlncli.h 通过 SQLNCLI_VER 宏支持多个版本的 SQL Server Native Client。默认情况下,SQLNCLI_VER 默认为 SQL Server Native Client 的最新版本。若要生成使用 sqlncli.dll 而非 sqlncli10.dll 的应用程序,请将 SQLNCLI_VER 设置为 90。
静态链接和 BCP 函数
在某一应用程序使用 BCP 函数时,对于该应用程序十分需要特别注意的是,应在连接字符串中指定来自用于编译该应用程序的头文件和库随附的相同版本的驱动程序。
例如,如果您使用 SQL Server 2008 Native Client 编译某一应用程序,并且关联的库文件 (sqlncli10.lib) 和头文件 (sqlncli.h) 来自 \Program Files\Microsoft SQL Server\100\SDK,则应确保在连接字符串中指定(使用 ODBC 为例)“DRIVER={SQL Server Native Client 10.0}”。
有关详细信息,请参阅执行执行大容量复制操作。