Ims Db 简明教程

IMS DB - Data Manipulation

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

  1. ISRT Call

  2. Get Hold Calls

  3. REPL Call

  4. DLET Call

让我们考虑以下 IMS 数据库结构以了解数据操作函数调用:

ims database1

ISRT Call

重点注意事项:

  1. ISRT 调用称为插入调用,用于向数据库添加段出现。

  2. ISRT 调用用于加载新数据库。

  3. 当段描述字段已加载数据时,我们发出 ISRT 调用。

  4. 必须在调用中指定未限定或限定 SSA,以便 DL/I 知道在何处放置段出现。

  5. 我们在调用中可以使用未限定和限定 SSA 的组合。所有上述级别都可以指定限定 SSA。让我们考虑以下示例:

CALL 'CBLTDLI' USING DLI-ISRT
                     PCB-NAME
                     IO-AREA
                     LIBRARY-SSA
                     BOOKS-SSA
                     UNQUALIFIED-ENGINEERING-SSA

上面的示例表明我们正通过提供限定和未限定 SSA 的组合来发出 ISRT 调用。

当我们正在插入的新段具有唯一键字段时,它将被添加到适当的位置。如果键字段不是唯一的,那么将按照数据库管理员定义的规则添加它。

当我们发出一个 ISRT 调用而没有指定关键字段时,插入规则会告诉我们如何将段相对于现有的孪生段放置。下面给出插入规则——

  1. First − 如果规则是 first(第一个),则新段将被添加到任何现有的孪生段之前。

  2. Last − 如果规则是 last(最后一个),则新段将被添加到所有现有的孪生段之后。

  3. Here − 如果规则是 here(这里),则它将相对于现有的孪生段添加到当前位置,可能是第一个、最后一个或任何位置。

Status Codes

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

S.No

Status Code & Description

1

Spaces Successful call

2

GE 使用了多个 SSA,且 DL/I 无法使用指定路径满足该调用。

3

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

4

LB / LC LD / LE 在加载处理过程中会获得这些状态代码。在大多数情况下,它们表示你没有以精确的分层顺序插入段。

Get Hold Call

重点注意事项:

  1. 有三种类型的保留调用,我们以它在 DL/I 调用中指定:保留唯一 (GHU)、保留下一段 (GHN)、在父段内保留下一段 (GHNP)。

  2. 保留功能指定将在检索后更新段。因此在 REPL 或 DLET 之前,必须发出一个成功的保留调用,告诉 DL/I 更新数据库的意图。

REPL Call

重点注意事项:

  1. 在成功的保留调用后,我们会发出一个 REPL 调用来更新段出现。

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

  3. 我们无法使用 REPL 调用更改键字段的值。

  4. 我们无法在 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

重点注意事项:

  1. DLET 调用与 REPL 调用类似。

  2. 在成功的保留调用后,我们会发出一个 DLET 调用来删除段出现。

  3. 我们无法在 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 调用来更新该段的值。

Status Codes

以下表格显示 REPL 或 DLET 调用之后的相关状态代码 −

S.No

Status Code & Description

1

Spaces Successful call

2

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

3

DJ 程序在没有立即进行预先获取保持调用时发出替换调用。

4

DA 在发出 REPL 或 DLET 调用之前,程序对段密钥字段进行更改