分享方式:


使用 SQL Server Native Client 標頭和連結庫檔案

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (PDW)

重要

SQL Server Native Client (SNAC) 未隨附於:

  • SQL Server 2022 (16.x) 和更新版本
  • SQL Server Management Studio 19 和更新版本

不建議使用 SQL Server Native Client (SQLNCLI 或 SQLNCLI11) 和舊版 Microsoft OLE DB Provider for SQL Server (SQLOLEDB) 開發新的應用程式。

針對新專案,請使用下列其中一個驅動程式:

針對 SQL Server 資料庫引擎 (2012 到 2019 版) 的隨附元件 SQLNCLI,請參閱支援生命週期例外狀況

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

SQL Server Native Client 頭檔 (sqlncli.h) 可用來將 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 頭檔回溯兼容於 sqloledb.h 和 odbcss.h 頭檔,搭配 Microsoft 數據存取元件 (MDAC),但不包含 SQLOLEDB 的 CLSID(MDAC 隨附的 SQL Server OLE DB 提供者)或 XML 功能的符號(SQL Server Native Client 不支援)。

ODBC 應用程式無法參考相同程式中的 SQL Server Native Client 標頭 (sqlncli.h) 和 odbcss.h。 即使您未使用 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,則應該省略上述第一行程式代碼。 此外,如果應用程式有 #include odbcss.h 的語句,則應該移除它。

透過 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 lib 檔案 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 編譯應用程式,以及從 \Program Files\Microsoft SQL Server\110\SDK 編譯相關聯的連結庫檔案 (sqlncli11.lib) 和頭檔 (sqlncli.h),請務必在 連接字串 中指定 [使用 ODBC 作為範例] “DRIVER={SQL Server Native Client 11.0}”。

如需詳細資訊,請參閱執行大量複製作業

另請參閱

使用 SQL Server Native Client 建置應用程式