テーブル値パラメータ (ODBC)
ODBC のテーブル値パラメータのサポートにより、クライアント アプリケーションは、1 回の呼び出しで複数の行をサーバーに送信することで、パラメータ化されたデータをサーバーに効率的に送信できます。
サーバーでのテーブル値パラメータの詳細については、「テーブル値パラメータ (データベース エンジン)」を参照してください。
ODBC でテーブル値パラメータをサーバーに送信するには、次の 2 つの方法があります。
SQLExecDirect または SQLExecute の呼び出し時、すべてのテーブル値パラメータのデータをメモリ内に保持できます。テーブル値に複数の行がある場合、このデータを配列に格納します。
SQLExecDirect または SQLExecute を呼び出すときに、アプリケーションでテーブル値パラメータの実行時データを指定できます。この場合、テーブル値のデータの行をバッチ内で指定するか、必要なメモリ量を減らすために 1 つずつ指定することができます。
1 つ目の方法では、より多くのビジネス ロジックをストアド プロシージャにカプセル化できます。たとえば、発注品目をテーブル値パラメータとして渡す場合、注文入力のトランザクション全体を 1 つのストアド プロシージャにカプセル化することができます。サーバーとのやり取りが 1 回で済むため、この方法は非常に効率的です。また、異なるプロシージャを使用して、注文ヘッダーと発注品目を個別に処理することもできます。この場合、必要なコードが多くなり、クライアントとサーバー間のコントラクトが複雑になります。
2 つ目の方法は、膨大な量のデータを使用する一括操作のときに効率の良いメカニズムです。この方法では、アプリケーションで最初にデータ行をメモリ内のバッファに格納しなくても、データ行をサーバーにストリーム送信できます。
テーブル変数を作成するときに、制約と主キーを作成できます。制約は、テーブル内のデータが特定の要件を満たしていることを確認するのに優れた方法です。
このセクションの内容
ODBC テーブル値パラメーターの使用
テーブル値パラメータと ODBC の主なユーザー シナリオについて説明します。テーブル値パラメータ用の ODBC SQL 型
SQL_SS_TABLE 型について説明します。この型は、テーブル値パラメータをサポートする新しい ODBC SQL 型です。テーブル値パラメータの記述子フィールド
テーブル値パラメータをサポートする記述子フィールドについて説明します。テーブル値パラメータを構成する列の記述子フィールド
テーブル値パラメータで意味を持つ記述子フィールドについて説明します。テーブル値パラメータの診断レコードのフィールド
テーブル値パラメータをサポートするために診断レコードに追加された 2 つの診断フィールドについて説明します。テーブル値パラメータに影響を与えるステートメント属性
テーブル値パラメータ列に対処できるようにする記述子の新しいヘッダー フィールドについて説明します。テーブル値パラメータおよび列の値のバインドとデータ転送
パラメータ バインドと、テーブル値パラメータをサーバーに渡す方法について説明します。準備されたステートメント用のテーブル値パラメータのメタデータ
アプリケーションから、準備されたプロシージャ呼び出しのメタデータを取得する方法について説明します。テーブル値パラメータの追加メタデータ
SQLProcedureColumns、SQLTables、および SQLColumns を使用して、テーブル値パラメータのメタデータを取得する方法について説明します。テーブル値パラメータのデータ変換およびその他のエラーと警告
テーブル値パラメータの列値に関するエラーを処理する方法について説明します。複数バージョン間の互換性
テーブル値パラメータが、SQL Server 2008 より前のバージョンのクライアントまたはサーバーで使用されるときに発生する可能性がある競合について説明します。ODBC テーブル値パラメータ API の概要
テーブル値パラメータをサポートする、ODBC 関数の一覧を示します。ODBC テーブル値パラメータのプログラミング例
一般的なタスクの実行方法について説明します。