次の方法で共有


SQLBulkOperations による行のフェッチ

SQLBulkOperations の呼び出しによって、ブックマークを使用してデータを行セットに 再フェッチできます。フェッチされる行は、バインドされたブックマーク列のブックマークによって識別されます。 値が SQL_COLUMN_IGNORE の列はフェッチされません。

SQLBulkOperations で一括フェッチを実行するために、アプリケーションは次の処理を実行します。

  1. 更新するすべての行のブックマークを取得してキャッシュします。 複数のブックマークがあり、列方向のバインドが使用されている場合、ブックマークは配列に格納されます。複数のブックマークがあり、行方向のバインドが使用されている場合、ブックマークは行構造の配列に格納されます。

  2. SQL_ATTR_ROW_ARRAY_SIZE ステートメント属性をフェッチする行の数に設定し、ブックマーク値またはブックマークの配列を含むバッファーを列 0 にバインドします。

  3. 必要に応じて、各列の長さ/インジケーター バッファーの値を設定します。 これは、文字列バッファーにバインドされた列のデータまたは SQL_NTS のバイト長、バイナリ バッファーにバインドされた列のデータのバイト長、および NULL に設定する列の SQL_NULL_DATA です。 アプリケーションは、既定値 (存在する場合) または NULL (存在しない場合) に設定する列の長さ/インジケーター バッファーの値を、SQL_COLUMN_IGNOREに設定します。

  4. Operation 引数を SQL_FETCH_BY_BOOKMARK に設定して SQLBulkOperations を呼び出します。

アプリケーションで行の操作配列を使用して、特定の列に対して操作が実行されないようにする必要はありません。 アプリケーションは、それらの行のブックマークのみをバインドされたブックマーク配列にコピーすることによって、フェッチする行を選択します。