付録D.3 型名記述領域の展開
型名記述領域は,UAP内で宣言することで静的なエリアとして確保します。
- 〈この項の構成〉
(1) C言語の場合
C言語の場合のソースプログラム中に展開する型名記述領域の形式を次に示します。
struct {
short sqltz; /* 配列の有効数 */
struct {
struct {
short sqlschemal; /* 認可識別子の有効長 */
char sqlschemac[8 ]; /* 認可識別子格納エリア */
} sqlschema;
struct {
short sqltypel; /* ユーザ定義型名の有効長 */
char sqltypec[30]; /* ユーザ定義型名格納エリア */
} sqltype;
} sqltnvar[n];※1
} Usrsqltnda;※2
- 注※1
-
nは,SQL記述領域のSQLVARの配列の大きさと同じ個数(1〜30000)を指定します。
- 注※2
-
構造体名称(’Usrsqltnda’の部分)は,任意の文字列を指定してください。なお,構造体名称に’SQL’で始まる文字列は指定できません。また,DESCRIBE文で型名記述領域を指定する場合,確保した領域の名称を指定します。
(2) COBOL言語の場合
COBOL言語の場合のソースプログラム中に展開する型名記述領域の形式を次に示します。
01 USQLTNDA. ※1
02 USQLTZ PIC S9(4) COMP.
02 USQLTNVAR OCCURS 1 TIMES n. ※2
03 USQLSCHEMA.
04 USQLSCHEMAL PIC S9(4) COMP.
04 USQLSCHEMAC PIC X(8).
03 USQLTYPE.
04 USQLTYPEL PIC S9(4) COMP.
04 USQLTYPEC PIC X(30).
- 注※1
-
集合項目の名称(’USQLTNDA’の部分)は,任意の名称を指定してください。なお,データ項目に’SQL’で始まる文字列は指定できません。
- 注※2
-
nはSQL記述領域のSQLVARの配列の大きさと同じ個数(1〜30000)を指定します。