SQLBulkOperations によるデータの更新

アプリケーションは、SQLBulkOperations を呼び出して、データ ソースの基になるテーブルに対して一括更新、削除、フェッチ、または挿入操作を実行できます。 SQLBulkOperations の呼び出しは、SQL ステートメントの構築と実行に代わる便利な方法です。 これにより、データ ソースが配置された SQL ステートメントをサポートしていない場合でも、ODBC ドライバーは位置指定更新をサポートできます。 これは、関数呼び出しによって完全なデータベース アクセスを実現するためのパラダイムの一部です。

SQLBulkOperations は現在の行セットで動作し、SQLFetch または SQLFetchScroll の呼び出し後にのみ使用できます。 アプリケーションは、ブックマークをキャッシュして、更新、削除、または最新の情報に更新する行を指定します。 ドライバーは、更新される行の新しいデータ、または基になるテーブルに挿入される新しいデータを行セット バッファーから取得します。

SQLBulkOperations で使用される行セット のサイズは、SQL_ATTR_ROW_ARRAY_SIZE の Attribute 引数を持つ SQLSetStmtAttr の呼び出しによって設定されます。 SQLFetch または SQLFetchScroll の呼び出し後にのみ新しい行セット サイズを使用する SQLSetPos とは異なり、SQLBulkOperations では、SQLSetStmtAttr の呼び出し後に新しい行セット サイズが使用されます。

リレーショナル データベースとのやり取りのほとんどは SQL を介して行われるため、 SQLBulkOperations は広くサポートされていません。 ただし、ドライバーは UPDATEDELETE、または INSERT ステートメントを構築して実行することで簡単にエミュレートできます。

SQLBulkOperation がサポートする操作を決定するために、アプリケーションは、(カーソルの種類に応じて) SQL_DYNAMIC_CURSOR_ATTRIBUTES1、SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1、SQL_KEYSET_CURSOR_ATTRIBUTES1、または SQL_STATIC_CURSOR_ATTRIBUTES1 情報オプションを使用して SQLGetInfo を呼び出します。

このセクションでは、次のトピックを扱います。