9.210 SPACE_OPERATION
その他のスペース・オブジェクト操作を要求します。
各製品の対応
LANSA/AD |
使用可 |
RDMLXのみで使用可能 |
Visual LANSA for Windows |
使用可 |
|
Visual LANSA for Linux |
使用可 |
引数
番号 |
タイプ |
必須/任意 |
記述 |
最小長 |
最大長 |
最小小数桁数 |
最大小数桁数 |
---|---|---|---|---|---|---|---|
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操作を使用して、現在のオペレーティング・システムのプロセス(またはジョブ)内にスペース・オブジェクトが存在するかどうかをチェックすることができます。
例:
Use Builtin(SPACE_OPERATION) With_Args('TestSpace' CHECKEXISTENCE) To_Get(#SPACERC)
上記の例では、TestSpaceという名前のスペースの有無がチェックされます。
有効な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)