- IMS DB 基础教程
- IMS DB - 首页
- IMS DB - 概述
- IMS DB - 结构
- IMS DB - DL/I 术语
- IMS DB - DL/I 处理
- IMS DB - 控制块
- IMS DB - 编程
- IMS DB - Cobol 基础
- IMS DB - DL/I 函数
- IMS DB - PCB 掩码
- IMS DB - SSA
- IMS DB - 数据检索
- IMS DB - 数据操作
- IMS DB - 二次索引
- IMS DB - 逻辑数据库
- IMS DB - 恢复
- IMS DB 有用资源
- IMS DB - 问答
- IMS DB - 快速指南
- IMS DB - 有用资源
IMS DB - 数据操作
在 IMS DL/I 调用中使用的不同数据操作方法如下:
- ISRT 调用
- 获取保持调用
- REPL 调用
- DLET 调用
让我们考虑以下 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 调用而不指定键字段时,插入规则会告诉在现有孪生段相对于何处放置段。以下是插入规则:
第一 - 如果规则是第一,则新段将添加到任何现有孪生段之前。
最后 - 如果规则是最后,则新段将添加到所有现有孪生段之后。
此处 - 如果规则是此处,则它将添加到相对于现有孪生段的当前位置,这可能是第一、最后或任何位置。
状态代码
下表显示 ISRT 调用后的相关状态代码:
序号 | 状态代码和描述 |
---|---|
1 | 空格 调用成功 |
2 | GE 使用了多个 SSA,并且 DL/I 无法使用指定的路径满足调用。 |
3 | II 尝试添加数据库中已存在的段出现。 |
4 | LB / LC LD / LE 我们在加载处理过程中获得这些状态代码。在大多数情况下,它们表示您没有按照精确的分层顺序插入段。 |
获取保持调用
需要注意的几点:
我们在 DL/I 调用中指定三种类型的获取保持调用
获取唯一保持 (GHU)
获取下一个保持 (GHN)
获取父级内的下一个保持 (GHNP)
保持功能指定我们将更新检索后的段。因此,在 REPL 或 DLET 调用之前,必须发出成功的保持调用以告知 DL/I 更新数据库的意图。
REPL 调用
需要注意的几点:
成功进行获取保持调用后,我们发出 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 调用非常相似。
成功进行获取保持调用后,我们发出 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 调用后的相关状态代码:
序号 | 状态代码和描述 |
---|---|
1 | 空格 调用成功 |
2 | AJ 在 REPL 或 DLET 调用中使用了限定的 SSA。 |
3 | DJ 程序在没有立即之前的获取保持调用的情况下发出替换调用。 |
4 | DA 程序在发出 REPL 或 DLET 调用之前更改了段的键字段。 |