IMSDB-データ操作
IMS DL / I呼び出しで使用されるさまざまなデータ操作方法は次のとおりです。
- ISRTコール
- 保留電話をかける
- REPLコール
- DLETコール
データ操作関数の呼び出しを理解するために、次のIMSデータベース構造を考えてみましょう。
ISRTコール
注意点-
ISRT呼び出しは、データベースにセグメントオカレンスを追加するために使用される挿入呼び出しと呼ばれます。
ISRT呼び出しは、新しいデータベースをロードするために使用されます。
セグメント記述フィールドにデータがロードされると、ISRT呼び出しが発行されます。
DL / Iがセグメントオカレンスを配置する場所を認識できるように、非修飾または修飾SSAを呼び出しで指定する必要があります。
コールでは、修飾されていないSSAと修飾されたSSAの両方を組み合わせて使用できます。上記のすべてのレベルに対して、適格なSSAを指定できます。次の例を考えてみましょう-
CALL 'CBLTDLI' USING DLI-ISRT
PCB-NAME
IO-AREA
LIBRARY-SSA
BOOKS-SSA
UNQUALIFIED-ENGINEERING-SSA
上記の例は、修飾されたSSAと修飾されていないSSAの組み合わせを提供することによってISRT呼び出しを発行していることを示しています。
挿入する新しいセグメントに一意のキーフィールドがある場合、それは適切な位置に追加されます。キーフィールドが一意でない場合は、データベース管理者によって定義されたルールによって追加されます。
キーフィールドを指定せずにISRT呼び出しを発行すると、挿入ルールは、既存のツインセグメントに対してセグメントを配置する場所を指示します。以下に挿入ルールを示します-
First −ルールが最初の場合、既存の双子の前に新しいセグメントが追加されます。
Last −ルールが最後の場合、既存のすべての双子の後に新しいセグメントが追加されます。
Here −ルールがここにある場合、既存の双子を基準にした現在の位置に追加されます。これは、最初、最後、またはどこでもかまいません。
ステータスコード
次の表は、ISRT呼び出し後の関連するステータスコードを示しています-
S.No | ステータスコードと説明 |
---|---|
1 | Spaces 成功した呼び出し |
2 | GE 複数のSSAが使用されており、DL / Iは指定されたパスで呼び出しを満たすことができません。 |
3 | II データベースにすでに存在するセグメントオカレンスを追加してみてください。 |
4 | LB / LC LD / LE ロード処理中にこれらのステータスコードを取得します。ほとんどの場合、これらは、セグメントを正確な階層順序で挿入していないことを示しています。 |
保留電話をかける
注意点-
DL / I呼び出しで指定するGetHold呼び出しには次の3つのタイプがあります。
Get Hold Unique(GHU)
ホールドネクスト(GHN)
親の中で次にホールドする(GHNP)
Hold関数は、取得後にセグメントを更新することを指定します。したがって、REPLまたはDLET呼び出しの前に、データベースを更新する意図をDL / Iに通知する正常な保留呼び出しを発行する必要があります。
REPLコール
注意点-
get hold呼び出しが成功した後、REPL呼び出しを発行して、セグメントオカレンスを更新します。
REPL呼び出しを使用してセグメントの長さを変更することはできません。
REPL呼び出しを使用してキーフィールドの値を変更することはできません。
REPL呼び出しで修飾SSAを使用することはできません。修飾されたSSAを指定すると、呼び出しは失敗します。
CALL 'CBLTDLI' USING DLI-GHU
PCB-NAME
IO-AREA
LIBRARY-SSA
BOOKS-SSA
ENGINEERING-SSA
IT-SSA.
*Move the values which you want to update in IT segment occurrence*
CALL ‘CBLTDLI’ USING DLI-REPL
PCB-NAME
IO-AREA.
上記の例では、REPL呼び出しを使用してITセグメントのオカレンスを更新しています。まず、GHU呼び出しを発行して、更新するセグメントオカレンスを取得します。次に、REPL呼び出しを発行して、そのセグメントの値を更新します。
DLETコール
注意点-
DLET呼び出しは、REPL呼び出しとほとんど同じように機能します。
get hold呼び出しが成功した後、DLET呼び出しを発行して、セグメントオカレンスを削除します。
DLET呼び出しで修飾SSAを使用することはできません。修飾されたSSAを指定すると、呼び出しは失敗します。
CALL 'CBLTDLI' USING DLI-GHU
PCB-NAME
IO-AREA
LIBRARY-SSA
BOOKS-SSA
ENGINEERING-SSA
IT-SSA.
CALL ‘CBLTDLI’ USING DLI-DLET
PCB-NAME
IO-AREA.
上記の例では、DLET呼び出しを使用してITセグメントオカレンスを削除します。まず、GHU呼び出しを発行して、削除するセグメントオカレンスを取得します。次に、DLET呼び出しを発行して、そのセグメントの値を更新します。
ステータスコード
次の表は、REPLまたはDLET呼び出し後の関連するステータスコードを示しています-
S.No | ステータスコードと説明 |
---|---|
1 | Spaces 成功した呼び出し |
2 | AJ REPLまたはDLET呼び出しで使用される適格なSSA。 |
3 | DJ プログラムは、直前のgethold呼び出しなしでreplace呼び出しを発行します。 |
4 | DA プログラムは、REPLまたはDLET呼び出しを発行する前に、セグメントのキーフィールドを変更します |