遅延フィールド
遅延フィールドの値は設定時には使用されませんが、ドライバーは遅延効果のために変数のアドレスを保存します。 アプリケーション パラメーター記述子の場合、ドライバーは、SQLExecDirect または SQLExecute の呼び出し時に変数の内容を使用します。 アプリケーション行記述子の場合、ドライバーはフェッチ時に変数の内容を使用します。
遅延フィールドを次に示します。
記述子レコードの SQL_DESC_DATA_PTR フィールドと SQL_DESC_INDICATOR_PTR フィールド。
アプリケーション記述子レコードの SQL_DESC_OCTET_LENGTH_PTR フィールド。
複数行フェッチの場合、記述子ヘッダーの SQL_DESC_ARRAY_STATUS_PTR フィールドと SQL_DESC_ROWS_PROCESSED_PTR フィールド。
記述子が割り当てられると、各記述子レコードの遅延フィールドは最初に null 値を持ちます。 null 値の意味は次のとおりです。
SQL_DESC_ARRAY_STATUS_PTRに null 値がある場合、複数行フェッチは行ごとの診断情報のこのコンポーネントを返しません。
SQL_DESC_DATA_PTR に null 値がある場合、レコードはバインドされません。
ARD のSQL_DESC_OCTET_LENGTH_PTR フィールドに null 値がある場合、ドライバーはその列の長さ情報を返しません。
APD の SQL_DESC_OCTET_LENGTH_PTR フィールドに null 値があり、パラメーターが文字列の場合、ドライバーは文字列が null で終わると見なします。 出力動的パラメーターの場合、このフィールドに null 値を指定すると、ドライバーは長さ情報を返せなくなります。 (SQL_DESC_TYPE フィールドが文字列パラメーターを示していない場合、SQL_DESC_OCTET_LENGTH_PTR フィールドは無視されます)。
遅延フィールドに使用される変数を、フィールドに関連付ける時間とドライバーが読み取りまたは書き込みを行う時間の間に、アプリケーションで遅延フィールドに使用される変数の割り当てを解除または破棄することはできません。