SQL Server Native Client ヘッダー ファイルとライブラリ ファイルの使用

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure 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 データベース エンジン (バージョン 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 ヘッダー ファイルに加えて、odbc の一括コピー プログラム (BCP) 機能のエクスポート ライブラリである sqlncli11.lib ライブラリ ファイルSQL Serverもあります。

SQL Server Native Client ヘッダー ファイルは、Microsoft Data Access Components (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)

OLE DB アプリケーションで SQL Server Native Client ヘッダー ファイルを使用するには、次のプログラミング コード行を使用します。

#define _SQLNCLI_OLEDB_  
include "sqlncli.h";  

Note

アプリケーションで OLE DB と ODBC の両方の API を使用する場合は、上記の 1 行目のコードを省略する必要があります。 さらに、アプリケーションに sqloledb.h の include ステートメントがある場合は、sqlncli.h の include ステートメントの後に記述する必要があります。

SQL Server Native Clientを使用してデータ ソースへの接続を作成する場合は、プロバイダー名の文字列として "SQLNCLI11" を使用します。

ODBC

ODBC アプリケーションで SQL Server Native Client ヘッダー ファイルを使用するには、次のプログラミング コード行を使用します。

#define _SQLNCLI_ODBC_  
include "sqlncli.h";  

Note

OLE DB API と 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 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 に既定で設定されます。 sqlncli11.dll ではなく sqlncli10.dll を使用するアプリケーションをビルドするには、SQLNCLI_VER を 10 に設定します。

静的リンクと BCP 関数

BCP 関数を使用するアプリケーションでは、アプリケーションのコンパイルに使用されたヘッダー ファイルおよびライブラリに付属するのと同じバージョンのドライバーを接続文字列で指定することが重要です。

たとえば、SQL Server Native Client を使用してアプリケーションをコンパイルし、関連付けられているライブラリ ファイル (sqlncli11.lib) とヘッダー ファイル (sqlncli.h) を \Program Files\Microsoft SQL Server\110\SDK からコンパイルする場合は、接続文字列に "DRIVER={SQL Server Native Client 11.0}" を指定してください (例として ODBC を使用)。

詳細については、「一括コピー操作の実行」を参照してください。

参照

SQL Server Native Client を使用したアプリケーションのビルド