void
FNC_GetArrayTypeInfo ( ARRAY_HANDLE aryHandle,
array_info_t *arrayInfo,
bounds_t *arrayScope)
- ARRAY_HANDLE aryHandle
- 外部ルーチンへの入力パラメータとして定義されたARRAY型へのハンドル。
- array_info_t *arrayInfo
- ARRAY入力パラメータについての情報を保持するバッファへのポインタ。
- array_info_t構造体は、sqltypes_td.hで次のように定義されています。
typedef struct array_info_t {
int numDimensions;
int totalNumElements;
element_info_t elementInfo;
} array_info_t;
説明
- numDimensionsは、このARRAY型に定義された次元数です。
- totalNumElementsは、このARRAY型に定義された構成要素の総数(すべての次元が対象)です。これを、ARRAY型の最大カーディナリティと呼ぶことがあります。
- elementInfoは、ARRAY型の構成要素についての情報です。詳細は、次に示すelement_info_t構造体の説明を参照してください。
element_info_t構造体は、sqltypes_td.hで次のように定義されています。
typedef struct element_info_t {
dtype_et data_type;
SMALLINT udt_indicator;
CHARACTER udt_type_name[256];
INTEGER max_length;
SMALLINT total_interval_digits;
SMALLINT num_fractional_digits;
charset_et charset_code;
} element_info_t;
説明
-
dtype_et、total_interval_digits、num_fractional_digits、またはcharset_etについての詳細は、FNC_GetStructuredAttributeInfoを参照してください。
- bounds_t *arrayScope
- bounds_t構造体の配列。この配列では、n-D ARRAYの各次元のスコープを表わします。ARRAY型が1-Dの場合、この単一次元のデフォルト スコープ情報(1からnまで。nはARRAYのサイズ)は、arrayScope配列の最初のセルで得られます。ARRAY型がn-Dの場合、2番目以降の次元情報は必要に応じてセル2から5に格納されています。ここから、各次元の開始境界と終了境界が得られます。
- bounds_t構造体は、sqltypes_td.hで次のように定義されています。
typedef struct bounds_t {
int lowerBound;
int upperBound;
} bounds_t;
- 説明
- lowerBoundは、次元の下位境界です。
- upperBoundは、次元の上位境界です。
- この配列は、値が5に設定されたFNC_ARRAYMAXDIMENSIONSのサイズになります。これは、ARRAYの最大次元数が5次元になることを意味します。
- arrayScope配列は、次のように宣言する必要があります。
bounds_t arrayScope[FNC_ARRAYMAXDIMENSIONS];