Ims Db 简明教程
IMS DB - Data Manipulation
IMS DL/I 调用中使用的不同数据操作方法如下:
-
ISRT Call
-
Get Hold Calls
-
REPL Call
-
DLET Call
让我们考虑以下 IMS 数据库结构以了解数据操作函数调用:
ISRT Call
重点注意事项:
-
ISRT 调用称为插入调用,用于向数据库添加段出现。
-
ISRT 调用用于加载新数据库。
-
当段描述字段已加载数据时,我们发出 ISRT 调用。
-
必须在调用中指定未限定或限定 SSA,以便 DL/I 知道在何处放置段出现。
-
我们在调用中可以使用未限定和限定 SSA 的组合。所有上述级别都可以指定限定 SSA。让我们考虑以下示例:
CALL 'CBLTDLI' USING DLI-ISRT
PCB-NAME
IO-AREA
LIBRARY-SSA
BOOKS-SSA
UNQUALIFIED-ENGINEERING-SSA
上面的示例表明我们正通过提供限定和未限定 SSA 的组合来发出 ISRT 调用。
当我们正在插入的新段具有唯一键字段时,它将被添加到适当的位置。如果键字段不是唯一的,那么将按照数据库管理员定义的规则添加它。
当我们发出一个 ISRT 调用而没有指定关键字段时,插入规则会告诉我们如何将段相对于现有的孪生段放置。下面给出插入规则——
-
First − 如果规则是 first(第一个),则新段将被添加到任何现有的孪生段之前。
-
Last − 如果规则是 last(最后一个),则新段将被添加到所有现有的孪生段之后。
-
Here − 如果规则是 here(这里),则它将相对于现有的孪生段添加到当前位置,可能是第一个、最后一个或任何位置。
Get Hold Call
重点注意事项:
-
有三种类型的保留调用,我们以它在 DL/I 调用中指定:保留唯一 (GHU)、保留下一段 (GHN)、在父段内保留下一段 (GHNP)。
-
保留功能指定将在检索后更新段。因此在 REPL 或 DLET 之前,必须发出一个成功的保留调用,告诉 DL/I 更新数据库的意图。
REPL Call
重点注意事项:
-
在成功的保留调用后,我们会发出一个 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 Call
重点注意事项:
-
DLET 调用与 REPL 调用类似。
-
在成功的保留调用后,我们会发出一个 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 调用来更新该段的值。