SQLDAのSQLVAR項目
SQLDA によって記述される各列または各ホスト変数には、基本 SQLVAR 項目と拡張 SQLVAR 項目の両方があります。
- 基本 SQLVAR 項目
- 基本 SQLVAR 項目は必ず存在します。 この項目のフィールドには、データ・タイプ・コード、長さ属性 (LOB 以外)、列名 (またはラベル)、 ホスト変数アドレス、および標識変数アドレスなどの、列またはホスト変数に関する 基本情報が入っています。
- 拡張 SQLVAR 項目
- 結果にLOBまたは distinct型1の列が含まれる場合は、拡張SQLVARエントリ(各列用)が必要です。 特殊タイプの場合、拡張 SQLVAR には特殊タイプ名が入ります。 LOB の場合、拡張 SQLVAR には、ホスト変数の長さ属性、
および実際の長さが入っている
バッファーのポインターが入っています。 LOB を表すのにロケーターを用いる場合には、拡張 SQLVAR は必要ありません。
拡張されたSQLVARエントリは、クエリが指定された場合、各カラムにも必要となります。 USING BOTH 、カラム名とラベルの両方が返されることを示します。 その DESCRIBE 出力と PREPARE ステートメントには、 USING BOTH 節を含めることができます。
LOB と特殊タイプ情報を戻す 拡張 SQLVAR のフィールドがオーバーラップすることはなく、また LOB とラベル情報を戻すフィールドもオーバーラップしません。 ラベル、LOB、および特殊タイプの組み合わせによっては、情報を戻すために、1 列につき複数の拡張 SQLVAR 項目を必要とする ことがあります。 SQLVARの必要発生数を決定するを参照してください。
以下の表は、SQLVAR の基本項目および拡張項目をマップする方法を示しています。 基本と拡張の両方の SQLVAR 項目を含む SQLDA の場合、基本 SQLVAR 項目は先頭のブロックに 入り、その後ろに拡張 SQLVAR 項目のブロックが続き、必要に応じて、その後ろに 拡張 SQLVAR 項目の 2 番目のブロックが続きます。 各ブロックにおいて、SQLVARエントリーの発生数は SQLD2の値と等しくなりますが、拡張SQLVARエントリーの多くは使用されていない可能性があります。
| LOB | 明確な
の種類1 |
SQLDAID の 7 番目のバイト | SQLD | SQLN の最小値2 | SQLVAR 項目のセット | ||
|---|---|---|---|---|---|---|---|
第1セット
(ベース) |
第2セット
(拡張) |
第3セット
(拡張) |
|||||
| USING BOTH 文節が指定されていない: | |||||||
| いいえ | いいえ | スペース | n | n | 列名、
ラベル |
使用していない | 使用していない |
| はい 3 | はい 3 | 2 | n | 2n | 列名、
ラベル |
LOB、
異なるタイプ、 またはその両方 |
未使用 |
| USING BOTH 文節が指定されていた: | |||||||
| いいえ | いいえ | スペース | 2n | 2n | 列名 | ラベル | 未使用 |
| はい | いいえ | 2 | n | 2n | 列名 | LOB およびラベル | 未使用 |
| いいえ | はい | 3 | n | 3n | 列名 | 特殊タイプ | ラベル |
| はい | はい | 3 | n | 3n | 列名 | LOBと
の異なるタイプ |
ラベル |
注:
|
|||||||
1 DESCRIBE INPUTは、異なる型に関する情報を返さない。
2 ラベルの各カラムに拡張SQLVARエントリが存在する場合(かつ、結果にLOBまたは別形式のカラムがない場合)、