CL

22. ユーザー・スペースを作成するには?

多くの情報検索APIの使用では結果の情報の取得において

  • 受け入れ変数を用意して結果の値を受け取る。
  • API がユーザー・スペースに書き込んだ値を検索する。

の2つの種類に大別される。

このうち後者による結果の検索がAPI では大半を占めている。

例えば、API : QUSLOBJ オブジェクトのリスト API によってあるライブラリーに存在している

オブジェクトの一覧表を取得したいとすると、API : QUSLOBJ はユーザー・スペースに

一覧表を出力するので、QUSLOBJ の実行後、ユーザー・スペースを読み取って一覧表を

作成することになる。

API の実行の前にはユーザー・スペースを事前に作成しておかねばならない。

つまりユーザー・スペースの作成は多くのAPI の実行の前準備となる。

次にライブラリーQTEMP LIBSPC という名前のユーザー・スペースを作成する例を示す。

0001.00         DCL        VAR(&APIERR) TYPE(*CHAR) LEN(4) +
0002.00                    VALUE(X'00000000') /* 2 進数  */
0003.00 /*( ユーザー・スペースの作成 )*/                                   
0004.00       CALL       PGM(QUSCRTUS) PARM('LIBSPC    +            
0005.00                    QTEMP     ' 'PF        ' 1000 ' ' +      
0006.00                    '*ALL      ' 'INZLIB 用ユーザー空間 ' +  
0007.00                    '*YES      ' &APIERR)                    
0008.00       MONMSG     CPF9870                                    
0009.00       ENDPGM
【 解説 】

ユーザー・スペース LIBSPC はこの例では拡張タイプ PF、サイズ 1000 で作成しているが、

ほとんどの場合はこれを変更する必要がない。

API がこのユーザー・スペースに出力しようとしてサイズ不足であっても、サイズは自動拡張
されるからである。

また、ユーザー・スペースが既に存在しているような場合であっても*YESによって上書きで

置き換えされるので、作成の前に存在を検査する必要も無い。

つまりユーザー・スペースの名前とテキスト以外は上記の例はそのまま使用することができる。