2.10.9 SDBデータベースの特定規則
pdsdbcblコマンドは,DMLに指定されたレコード名からレコード型に関する定義情報を取得しています。情報を取得する際,SDBデータベース節に指定された順にSDBデータベースの定義情報を参照します。同じレコード型名が定義されているSDBデータベースが複数指定されている場合は,最初に参照したSDBデータベースの定義情報からレコード型に関する定義情報を取得します。
なお,DMLに指定された親子集合型名について定義情報を取得する際にも,レコード型名と同様にSDBデータベースの定義情報を参照します。ただし,DMLにレコード名と親子集合型名の両方が指定されている場合は,参照するSDBデータベースの特定はレコード名によって行われます。
DMLのレコード名,親子集合型名から,SDBデータベースを特定する例を次に示します。
(例)
-
UAPソースファイル(SRC01)
SDB-DATABASE SECTION. SDB SDB1,SDB2. ←SDB1が先に指定されている。 : EXEC DML FETCH NEXT RECA INTO :XRECA ←SDB1に定義されたレコード型RECAと解釈される。 END-DML. EXEC DML FETCH NEXT RECB INTO :XRECB ←SDB1に定義されたレコード型RECBと解釈される。 WITHIN SET1 END-DML. EXEC DML FIND CURRENT OWNER OF SET1 ←SDB1に定義された親子集合型SET1と解釈される。 END-DML.
-
UAPソースファイル(SRC02)
SDB-DATABASE SECTION. SDB SDB2,SDB1. ←SDB2が先に指定されている。 : EXEC DML FETCH NEXT RECA INTO :XRECA ←SDB2に定義されたレコード型RECAと解釈される。 END-DML. EXEC DML FETCH NEXT RECB INTO :XRECB ←SDB2に定義されたレコード型RECBと解釈される。 WITHIN SET1 END-DML. EXEC DML FIND CURRENT OWNER OF SET1 ←SDB2に定義された親子集合型SET1と解釈される。 END-DML.