次の方法で共有


列のデータ

重要

この機能は、Windows の将来のバージョンで削除される予定です。 新しい開発作業ではこの機能を使用しないでください。また、現在この機能を使用しているアプリケーションの変更を計画してください。 Microsoft では、ドライバーのカーソル機能を使用することをお勧めします。

カーソル ライブラリは、 SQLBindCol を使用して結果セットにバインドされた各データ バッファーのバッファーをキャッシュに作成します。 これらのバッファー内の値を使用して、配置された更新または delete ステートメントをエミュレートするときに WHERE 句を作成します。 これらのバッファーは、データ ソースからデータをフェッチするとき、および位置指定された更新ステートメントを実行するときに、行セット バッファーからこれらのバッファーを更新します。

カーソル ライブラリは、行セット バッファーからキャッシュを更新すると、 SQLBindCol で指定された C データ型に従ってデータを転送します。 たとえば、行セット バッファーの C データ型がSQL_C_SLONG場合、カーソル ライブラリは 4 バイトのデータを転送します。SQL_C_CHARで BufferLength が 10 の場合、カーソル ライブラリは 10 バイトのデータを転送します。 カーソル ライブラリは、転送するデータに対して型チェックや変換を実行しません。

Note

対応する行セット バッファー内の *StrLen_or_IndPtrがSQL_DATA_AT_EXEC またはSQL_LEN_DATA_AT_EXEC マクロの結果である場合、カーソル ライブラリは列のキャッシュを更新しません。

列を更新すると、データ ソースの空白パッド固定長文字データと、必要に応じて固定長バイナリ データを 0 個埋め込みます。 たとえば、データ ソースでは、CHAR(10) 列に "Smith" が "Smith" として格納されます。 カーソル ライブラリは、位置指定された update ステートメントの実行後にこのデータをキャッシュにコピーするときに、行セット バッファー内の空白埋め込みデータやゼロパッド データを行いません。 したがって、カーソル ライブラリのキャッシュ内の値が空白埋め込みまたはゼロ埋め込みである必要がある場合、配置された更新ステートメントを実行する前に、行セット バッファーの値を空白埋め込みまたはゼロパッドで埋め込む必要があります。