パラメーター バインディングのオフセット

アプリケーションでは、SQLExecDirect または SQLExecute が呼び出されたときに、バインドされたパラメーター バッファー アドレスと対応する長さ/インジケーター バッファー アドレスにオフセットを追加することを指定できます。 これらを追加した結果によって、これらの操作で使用されるアドレスが決まります。

バインド オフセットを使用すると、以前にバインドされたパラメーターに対して SQLBindParameter を呼び出さずに、アプリケーションでバインドを変更できます。 SQLBindParameter を呼び出してパラメーターを再バインドすると、バッファー アドレスと長さ/インジケーター ポインターが変更されます。 一方、オフセットを使用して再バインドすると、既存のバインドされたパラメーター バッファー アドレスと長さ/インジケーター バッファー アドレスにオフセットが追加されるだけです。 オフセットを使用する場合、バインドはアプリケーション バッファーのレイアウト方法の「テンプレート」となり、アプリケーションでオフセットを変更すれば、この「テンプレート」をメモリのさまざまな領域に移動できます。 新しいオフセットはいつでも指定でき、常に元のバインドされた値に追加されます。

バインド オフセットを指定するために、アプリケーションは、SQL_ATTR_PARAM_BIND_OFFSET_PTR ステートメント属性を SQLINTEGER バッファーのアドレスに設定します。 アプリケーションは、バインディングを使用する関数を呼び出す前に、パラメーター バッファー アドレスも長さ/インジケーター バッファー アドレスも 0 でなく、バインドされたパラメーターが SQL ステートメント内にある限り、このバッファーにバイト単位のオフセットを配置します。 アドレスとオフセットの合計は、有効なアドレスである必要があります。 (これは、オフセットの合計が有効なアドレスである限り、オフセットとオフセットが追加されるアドレスのいずれかまたは両方が無効である可能性があることを意味します)。

Note

バインディング オフセットは ODBC 2.x ドライバーではサポートされていません。