遅延バッファー

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

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

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