8.201 SPACE_OPERATION

その他のスペース・オブジェクト操作を要求します。

 

引数

番号

タイプ

必須/任意

記述

最小長

最大長

最小小数桁数

最大小数桁数

1

A

必須 

スペース名

1

256

 

 

2

A

必須 

要求された操作

1

256

 

 

3-20

X

任意 

操作に依存する追加の引数を指定するフィールド

1

無制限

0

無制限

 

戻り値

番号

タイプ

必須/任意

記述

最小長

最大長

最小小数桁数

最大小数桁数

1

A

任意 

標準戻りコード

ER = 要求に失敗した。発行されるメッセージに失敗の原因が示される

その他の戻りコードの値は、要求される操作によって異なります。詳細については、各操作の説明を参照してください。

2

2

 

 

2-20

X

任意 

操作に依存する追加の戻り値を指定するフィールド

1

無制限

0

無制限

 

CheckExistence操作

CheckExistence操作を使用して、現在のオペレーティング・システムのプロセス(またはジョブ)内にスペース・オブジェクトが存在するかどうかをチェックすることができます。
次の例では、TestSpaceという名前のスペースの有無がチェックされます。

Use Builtin(SPACE_OPERATION) With_Args('TestSpace' CHECKEXISTENCE) To_Get(#SPACERC)

 

有効なCheckExistence要求によって戻される戻りコードは、"OK"(スペース・オブジェクトが存在する)または"NR"(スペース・オブジェクトが存在しない)だけです。

SetCursor操作

SetCursor操作を使用して、組み込み関数SELECT_IN_SPACEまたはSELECTNEXT_IN_SPACEの後続呼び出しすべてに対してカーソルを設定することができます。これは、スペース・オブジェクトに固有の操作ではありません。カーソルを2に設定すると、スペース・オブジェクトに対する後続のSELECT... BIFはすべて、設定が変更されるまでカーソル2を使用します。デフォルトのカーソルは、1です。スペース・オブジェクトごとに最大4個のカーソルを指定することができます。カーソルの数値が1から4の間であることについてのみチェックが行われます。

例:

Use Builtin(SPACE_OPERATION) With_Args('TestSpace' SETCURSOR 2) To_Get(#SPACERC)

 

有効なSetCursor要求によって戻される戻りコードは、"OK"(スペース・オブジェクトが存在する)または"NR"(カーソルの数値が無効)だけです。

この操作によって、同じスペース・オブジェクトに対するSELECT_IN_SPACE要求をネストすることができます。効率的に使用するには、組み込み関数SELECT_IN_SPACEまたはSELECTNEXT_IN_SPACEを使用する直前にSetCursor操作を呼び出し、正しいカーソルが確実に使用されるようにします。これは、LEAVEコマンドが内側のループから発行されたなどの理由で不適切なカーソルを使用することによって、好ましくない副次的作用が発生するのを防ぐためのSetCursor操作の一般的な使用法です。

Use Builtin(SPACE_OPERATION) With_Args(#AR_SPACE SetCursor 1) To_Get(#SPACERC)
Use Builtin(SELECT_IN_SPACE) With_Args(#AR_SPACE) To_Get(#SPACERC #XG_AR)
Dowhile Cond(*SPACEOK)
 
   Use Builtin(SPACE_OPERATION) With_Args(#AR_SPACE SetCursor 2) To_Get(#SPACERC)
 
   * Note the use of a different set of fields to hold the data - #XG_AR2
   Use Builtin(SELECT_IN_SPACE) With_Args(#AR_SPACE) To_Get(#SPACERC #XG_AR2)
   Dowhile Cond(*SPACEOK)
      * Do something with the data here
      Use Builtin(SPACE_OPERATION) With_Args(#AR_SPACE SetCursor 2) To_Get(#SPACERC)
      Use Builtin(SELECTNEXT_IN_SPACE) With_Args(#AR_SPACE) To_Get(#SPACERC #XG_AR2)
   Endwhile
 
   Use Builtin(SPACE_OPERATION) With_Args(#AR_SPACE SetCursor 1) To_Get(#SPACERC)
   Use Builtin(SELECTNEXT_IN_SPACE) With_Args(#AR_SPACE) To_Get(#SPACERC #XG_AR)
Endwhile
* Set the cursor back to the default for any further SELECT... BIF calls.
Use Builtin(SPACE_OPERATION) With_Args(#AR_SPACE SetCursor 1) To_Get(#SPACERC)