次の方法で共有


ドライバー アプリケーションの作成

適用対象: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 については、このサポート ライフサイクルの例外を参照してください。

ODBC アーキテクチャには、次の機能を実行する 4 つのコンポーネントがあります。

コンポーネント 機能
Application ODBC 関数を呼び出して ODBC データ ソースと通信し、SQL ステートメントを送信して、結果セットを処理します。
ドライバー マネージャー アプリケーションと、そのアプリケーションで使用されるすべての ODBC ドライバー間の通信を管理します。
Driver アプリケーションからのすべての ODBC 関数呼び出しを処理し、データ ソースに接続して、SQL ステートメントをアプリケーションからデータ ソースに渡し、結果をアプリケーションに返します。 必要に応じて、アプリケーションの ODBC SQL をデータ ソースで使用されるネイティブ SQL に変換します。
データ ソース DBMS 内にあるデータの特定のインスタンスにアクセスするためにドライバーが必要とするすべての情報が含まれています。

SQL Server Native Client ODBC ドライバーを使用して SQL Server のインスタンスと通信するアプリケーションは、次のタスクを実行します。

  • データ ソースとの接続

  • データ ソースへの SQL ステートメントの送信

  • データ ソースから返されたステートメント結果の処理

  • エラーとメッセージを処理する

  • データ ソースへの接続の終了

SQL Server Native Client ODBC ドライバー用に作成されたより複雑なアプリケーションでは、次のタスクも実行できます。

  • カーソルを使用した結果セット内の位置の制御

  • トランザクション制御に関するコミット操作やロールバック操作の要求

  • 2 台以上のサーバーに関連する分散トランザクションの実行

  • リモート サーバーでのストアド プロシージャの実行

  • 結果セットの属性に関する情報を取得するためのカタログ関数の呼び出し

  • 一括コピー操作を実行する

  • 大きなデータ (varchar(max)nvarchar(max)varbinary(max) 列) の操作を管理する

  • データベース ミラーリングが構成されているときにフェールオーバーを容易にするための再接続ロジックの使用

  • パフォーマンス データや実行時間の長いクエリのログ記録

ODBC 関数を呼び出すには、C または C++ アプリケーションで sql.h ヘッダー ファイル、sqlext.h ヘッダー ファイル、および sqltypes.h ヘッダー ファイルをインクルードする必要があります。 ODBC インストーラーの API 関数を呼び出す場合は、アプリケーションで odbcinst.h ヘッダー ファイルをインクルードする必要があります。 Unicode ODBC アプリケーションでは、sqlucode.h ヘッダー ファイルをインクルードする必要があります。 ODBC アプリケーションは、odbc32.lib ファイルとリンクする必要があります。 ODBC インストーラーの API 関数を呼び出す ODBC アプリケーションは、odbccp32.lib ファイルとリンクする必要があります。 これらのファイルは、Windows プラットフォーム SDK に含まれています。

SQL Server Native Client ODBC ドライバーを含む多くの ODBC ドライバーには、ドライバー固有の ODBC 拡張機能が用意されています。 ODBC ドライバー固有の拡張機能SQL Server Native Client利用するには、アプリケーションに sqlncli.h ヘッダー ファイルを含める必要があります。 このヘッダー ファイルには、次の要素が含まれています。

  • ODBC ドライバー固有の接続属性をSQL Server Native Clientします。

  • ODBC ドライバー固有のステートメント属性をSQL Server Native Clientします。

  • ODBC ドライバー固有の列属性をSQL Server Native Clientします。

  • SQL Server固有のデータ型。

  • SQL Server固有のユーザー定義データ型。

  • ODBC ドライバー固有の SQLGetInfo 型をSQL Server Native Clientします。

  • ODBC ドライバー診断フィールドをSQL Server Native Clientします。

  • SQL Server固有の診断動的関数コード。

  • SQL Server固有のネイティブ C データ型の C/C++ 型定義 (C データ型SQL_C_BINARYにバインドされた列の場合に返されます)。

  • SQLPERF データ構造体の型定義

  • ODBC 接続経由の一括コピー API の使用をサポートするための一括コピー用のマクロとプロトタイプ

  • リンク サーバーとリンク サーバーのカタログ一覧を取得するための分散クエリ メタデータ API 関数呼び出し

SQL Server Native Client ODBC ドライバーの一括コピー機能を使用する C または C++ ODBC アプリケーションは、sqlncli11.lib ファイルとリンクする必要があります。 分散クエリ メタデータ API 関数を呼び出すアプリケーションも、sqlncli11.lib とリンクする必要があります。 sqlncli.h ファイルと sqlncli11.lib ファイルは、SQL Server開発者のツールの一部として配布されます。 SQL Server Include ディレクトリと Lib ディレクトリは、次のようにコンパイラの INCLUDE および LIB パスに含める必要があります。

LIB=c:\Program Files\Microsoft Data Access SDK 2.8\Libs\x86\lib;C:\Program Files\Microsoft SQL Server\100\Tools\SDK\Lib;  
INCLUDE=c:\Program Files\Microsoft Data Access SDK 2.8\inc;C:\Program Files\Microsoft SQL Server\100\Tools\SDK\Include;  

アプリケーションで複数の ODBC 呼び出しが同時に未処理状態になる必要があるかどうかというデザイン上の決定を、アプリケーションのビルド処理の初期段階で行います。 複数の同時実行 ODBC 呼び出しをサポートするには 2 つの方法があり、このセクションの残りのトピックで説明されています。 詳細については、「 ODBC プログラマー リファレンス」を参照してください

このセクションの内容

参照

SQL Server Native Client (ODBC)