遅延バッファー

遅延バッファーは、関数呼び出しで指定された、ある時点で値が使用されるバッファーです。 たとえば、SQLBindParameter は、データ バッファーを SQL ステートメント内のパラメーターに関連付けたり、バインドしたりするために使用されます。 アプリケーションはパラメーターの数を指定し、バッファーのアドレス、バイト長、および型を渡します。 ドライバーは、この情報を保存しますが、バッファーの内容を調べません。 後でアプリケーションがステートメントを実行すると、ドライバーは情報を取得し、それを使用してパラメーター データを取得し、データ ソースに送信します。 そのため、バッファー内のデータの入力は遅延されます。 遅延バッファーは 1 つの関数で指定され、別の関数で使用されるため、遅延バッファーを解放するのはアプリケーション プログラミング エラーであり、ドライバーは遅延バッファーが存在することを想定しています。詳細については、このセクションで後述する「バッファーの割り当てと解放」を参照してください。

入力バッファーと出力バッファーの両方を遅延させることができます。 次の表は、遅延バッファーの使用方法をまとめたものです。 結果セット列にバインドされた遅延バッファーは SQLBindCol で指定され、SQL ステートメント パラメーターにバインドされた遅延バッファーは SQLBindParameter で指定されることに注意してください。

バッファーの使用 Type 指定 使用者
入力パラメーターのデータの送信 遅延入力 SQLBindParameter SQLExecute
SQLExecDirect
結果セットに行を更新または挿入するためのデータの送信 遅延入力 SQLBindCol SQLSetPos
出力パラメーターと入力/出力パラメーターのデータを返す 遅延出力 SQLBindParameter SQLExecute
SQLExecDirect
結果セット データの返し 遅延出力 SQLBindCol SQLFetch
SQLFetchScroll SQLSetPos