使用 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 (SSMS) 中移除。 不建議使用 SQL Server Native Client (SQLNCLI 或 SQLNCLI11) 和舊版 Microsoft OLE DB Provider for SQL Server (SQLOLEDB) 開發新的應用程式。 往後請改用新的 Microsoft OLE DB Driver (MSOLEDBSQL) for SQL Server 或最新的 Microsoft ODBC 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

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 標頭檔與搭配 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 (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 編譯應用程式,以及連接字串中的關聯程式庫檔案 (sqlncli11.lib) 和標頭檔 (sqlncli.h),請務必在連接字串中指定 「DRIVER={SQL Server Native Client 11.0}」。

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

另請參閱

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