使用 SQL Server Native Client 標頭和連結庫檔案
適用於: SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics 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),請務必在 連接字串 中指定 “DRIVER={SQL Server Native Client 11.0}”。
如需詳細資訊,請參閱執行大量複製作業。