Share via


SQL Server Native Client ODBC ドライバ アプリケーションの作成

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

コンポーネント

機能

アプリケーション

ODBC 関数を呼び出して ODBC データ ソースと通信し、SQL ステートメントを送信して、結果セットを処理します。

ドライバ マネージャ

アプリケーションと、そのアプリケーションで使用されるすべての ODBC ドライバ間の通信を管理します。

ドライバ

アプリケーションからのすべての 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 拡張機能が備わっています。SQL Server Native Client ODBC ドライバ固有の拡張機能を使用するには、アプリケーションで sqlncli.h ヘッダー ファイルをインクルードする必要があります。このヘッダー ファイルには、次の要素が含まれています。

  • SQL Server Native Client ODBC ドライバ固有の接続属性

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

  • SQL Server Native Client ODBC ドライバ固有の列属性

  • SQL Server 固有のデータ型

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

  • SQL Server Native Client ODBC ドライバ固有の SQLGetInfo

  • SQL Server Native Client ODBC ドライバの診断フィールド

  • 診断に役立つ SQL Server 固有の動的関数コード

  • SQL Server 固有のネイティブ C データ型に関する C 型定義や C++ 型定義 (列が C データ型の SQL_C_BINARY にバインドされるときに返される)

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

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

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

SQL Server Native Client ODBC ドライバの一括コピー機能を使用するすべての C または C++ ODBC アプリケーションは、sqlncli10.lib ファイルとリンクする必要があります。分散クエリ メタデータ API 関数を呼び出すアプリケーションも、sqlncli10.lib とリンクする必要があります。sqlncli.h ファイルと sqlncli10.lib ファイルは、SQL Server 開発者用ツールの一部として配布されます。次のように、SQL Server の Include ディレクトリはコンパイラの INCLUDE パスに、Lib ディレクトリは 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 のプログラマ リファレンスを参照してください。