IMS DB - 数据操作


IMS DL/I 调用中使用的不同数据操作方法如下:

  • ISRT 通话
  • 获取保持呼叫
  • REPL 调用
  • DLET 呼叫

让我们考虑以下 IMS 数据库结构来理解数据操作函数调用 -

IMS数据库

ISRT 通话

注意事项 -

  • 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  - 如果规则是第一个,则新段将添加到任何现有孪生之前。

  • 最后 - 如果规则是最后一个,则新段将添加到所有现有孪生之后。

  • Here  - 如果规则位于此处,则将其添加到相对于现有双胞胎的当前位置,该位置可能是第一个、最后一个或任何位置。

状态代码

下表显示了 ISRT 调用后的相关状态代码 -

序列号 状态代码和描述
1

空间

通话成功

2

通用电气

使用多个SSA,DL/I无法满足指定路径的呼叫。

3

尝试添加数据库中已存在的段出现。

4

LB/LC LD/LE

我们在加载处理时获取这些状态代码。在大多数情况下,它们表明您没有按照精确的分层顺序插入段。

保持通话

注意事项 -

  • 我们在 DL/I 调用中指定了三种类型的 Get Hold 调用:

    • 保持独特 (GHU)

    • 抓住下一个 (GHN)

    • 在父级中保持下一步(GHNP)

  • Hold 函数指定我们将在检索后更新该段。因此,在 REPL 或 DLET 调用之前,必须发出成功的保持调用,告诉 DL/I 更新数据库的意图。

REPL 调用

注意事项 -

  • 成功获取保持调用后,我们发出 REPL 调用来更新段出现。

  • 我们无法使用 REPL 调用来更改段的长度。

  • 我们无法使用 REPL 调用来更改关键字段的值。

  • 我们不能将合格的 SSA 与 REPL 调用一起使用。如果我们指定一个合格的 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 调用非常相似。

  • 成功获取保持调用后,我们发出 DLET 调用来删除段出现。

  • 我们不能将合格的 SSA 与 DLET 调用一起使用。如果我们指定一个合格的 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 调用后的相关状态代码 -

序列号 状态代码和描述
1

空间

通话成功

2

阿杰

REPL 或 DLET 调用中使用的合格 SSA。

3

DJ

程序发出替换调用,而没有紧接在前的获取保持调用。

4

DA

程序在发出 REPL 或 DLET 调用之前对段的关键字段进行更改