SQLVAR のオカレンスのフィールドの説明
このセクションでは、基本および 2 次 SQLVAR のオカレンス内のフィールドについて説明します。
基本 SQLVAR のオカレンス内のフィールド
C の名前1 |
フィールド |
DESCRIBE および PREPARE で使用する場合 (データベース・マネージャーがセットする) | FETCH、OPEN、CALL、および EXECUTE で使用する場合 (ユーザーがステートメントを実行する前にセットする) |
---|---|---|---|
sqltype |
SMALLINT | 列のデータ・タイプと、その列に NULL を入れられるかどうかを指示します。
データ・タイプを示すコードについては、表 1 を参照してください。
特殊タイプの場合、特殊タイプの基本となっているデータ・タイプがこのフィールドに置かれます。基本 SQLVAR には、これが特殊タイプの記述の一部であることを示すものは含まれません。 |
ホスト変数のデータ・タイプと、その変数に標識変数が指定されているかどうかを指示します。 データ・タイプを示すコードについては、表 1 を参照してください。 |
sqllen |
SMALLINT | 列の長さ属性です。 日付/時刻の列の場合、その値のストリング表現の長さ。
表 1を参照してください。 LOB の場合、その LOB の長さ属性に関係なく、この値は 0 になります。XML の場合、値は 0。拡張 SQLVAR 項目のフィールド SQLLONGLEN には、LOB または XML の長さの属性が入ります。 |
ホスト変数の長さ属性です。
表 1を参照してください。 LOB の場合、その LOB の長さ属性に関係なく、この値は 0 になります。拡張 SQLVAR 項目内のフィールド SQLLONGLEN には、LOB の長さ属性が入ります。 XML AS BLOB、CLOB、または DBCLOB の場合、値は 0 です。 |
sqlres |
CHAR(12) | 予約済み。 SQLDATA の境界合わせ用。 | 予約済み。 SQLDATA の境界合わせ用。 |
sqldata |
ポインター | ストリング列または XML 列の CCSID (表 1 を参照してください)。 | ホスト変数のアドレスが入ります。
LOB ホスト変数の場合、拡張 SQLVAR 内の SQLDATALEN フィールドが NULL であれば、4 バイトの LOB 長を指し、その直後に LOB データが続きます。 拡張 SQLVAR 内の SQLDATALEN フィールドが NULL でない場合は、LOB データを指し、SQLDATALEN フィールドは 4 バイトの LOB 長を指します。 |
sqlind |
ポインター | 選択ステートメントの場合、列が、WITH ROW CHANGE COLUMNS 属性を使用した結果追加されたかどうかを以下のように示します。
|
標識変数のアドレスが入ります。 標識変数がない (SQLTYPE の値が偶数である) 場合は、使用されません。 |
sqlname |
VARCHAR (30) | 修飾のない列名。列に名前がない場合、ストリングは式から構成されて、戻されます。
この名前には大文字小文字の区別があります。全体を区切り文字で囲ん ではなりません。 |
ホスト変数の CCSID (表 1 を参照) が入ります。
XML データの場合、XML サブタイプを示すために sqlname を以下のように設定できます。 sqlname の長さは 8 です。 バイト 1 および 2: X'0000' にする必要があります。 バイト 3 および 4: CCSID を含めることができます。 バイト 5 および 6: X'0100' XML ホスト変数 (XML AS CLOB、XML AS DBCLOB、XML AS BLOB、XML AS CLOB_FILE、XML AS DBCLOB_FILE、XML AS BLOB_FILE) バイト 7 および 8: X'0000' にする必要があります。 |
副次 SQLVAR のオカレンスのフィールド
C の名前2 |
フィールド |
DESCRIBE および PREPARE で使用する場合 (データベース・マネージャーがセットする) | FETCH、OPEN、CALL、および EXECUTE で使用する場合 (ユーザーがステートメントを実行する前にセットする) |
---|---|---|---|
len.sqllonglen |
INTEGER | LOB 列の長さ属性。 XML の場合、値は 0。 | LOB または XML ホスト変数の長さ属性。 データベース・マネージャーは、これらのデータ・タイプの場合、基本 SQLVAR 内の SQLLEN フィールドは無視します。 長さ属性は、BLOB の場合はバイト数、CLOB、DBCLOB または XML の場合は文字数を示します。 |
* | CHAR(12) | 予約済み。 SQLDATALEN の境界合わせ用。 | 予約済み。 SQLDATALEN の境界合わせ用。 |
* | ポインター | 予約済み。 | 予約済み。 |
sqldatalen |
ポインター | 使用されません。 | LOB ホスト変数にのみ使用されます。
このフィールドの値が NULL ではない場合は、このフィールドは、LOB の実際の長さ (バイト単位) を含む 4 バイトの長さのバッファーを指します (DBCLOB の場合でも)。そして、一致する基本 SQLVAR の SQLDATA フィールドは、LOB データを指します。 このフィールドの値が NULL の場合、LOB の実際の長さは、一致する基本 SQLVAR 内の SQLDATA フィールドが指す最初の 4 バイトに保管され、LOB データは 4 バイトの長さの直後に続きます。 実際の長さは、BLOB または CLOB のバイト数と、DBCLOB の 2 バイトの文字数を示します。 このフィールドが使用されるかどうかに関係なく、フィールド SQLLONGLEN はセットしなければなりません。 |
sqldatatype_name |
VARCHAR (30) | 拡張 SQLVAR の SQLTNAME フィールドは、次のいずれかにセットされます。
|
使用されません。 |