Ims Db 简明教程

IMS DB - PCB Mask

PCB 的全称为 Program Communication Block(程序通信块)。PCB Mask 是在 DL/I 调用中使用的第二个参数。在链接部分中声明。以下是 PCB Mask 的语法:

01 PCB-NAME.
   05 DBD-NAME         PIC X(8).
   05 SEG-LEVEL        PIC XX.
   05 STATUS-CODE      PIC XX.
   05 PROC-OPTIONS     PIC X(4).
   05 RESERVED-DLI     PIC S9(5).
   05 SEG-NAME         PIC X(8).
   05 LENGTH-FB-KEY    PIC S9(5).
   05 NUMB-SENS-SEGS   PIC S9(5).
   05 KEY-FB-AREA      PIC X(n).

以下为重点注意事项:

  1. 对于每个数据库,DL/I 维护一个被称为程序通信块的存储区域。它存储有关在应用程序中访问的数据库的信息。

  2. ENTRY 语句在链接部分和程序 PSB 内的 PCB Mask 之间创建连接。DL/I 调用中使用的 PCB Mask 告知要为操作使用哪个数据库。

  3. 您可以假设这类似于在 COBOL READ 语句中指定文件名或在 COBOL 写入语句中指定记录名。不需要 SELECT、ASSIGN、OPEN 或 CLOSE 语句。

  4. 在每次 DL/I 调用之后,DL/I 在 PCB 中存储状态代码,程序可使用该代码确定调用是否成功或失败。

PCB Name

重点注意事项:

  1. PCB 名称是表示 PCB 字段整个结构的区域的名称。

  2. PCB 名称用于程序语句。

  3. PCB 名称不是 PCB 中的一个字段。

DBD Name

重点注意事项:

  1. DBD 名称包含字符数据。其长度为八个字节。

  2. PCB 中的第一个字段是正在处理的数据库的名称,它提供与特定数据库关联的数据库描述库中的 DBD 名称。

Segment Level

重点注意事项:

  1. 段级别被称为段层次级级别指示器。它包含字符数据,长度为两个字节。

  2. 段级别字段存储处理段的级别。检索到段后,会存储检索到的段的级别。

  3. 段级别字段的值不超过 15,因为这是 DL/I 数据库中允许的最大级别数。

Status Code

重点注意事项:

  1. 状态代码字段包含两个字节的字符数据。

  2. 状态代码包含 DL/I 状态代码。

  3. 在 DL/I 成功完成调用处理后,空格会移至状态代码字段。

  4. 非空格值指示调用不成功。

  5. 状态代码 GB 指示文件结束,状态代码 GE 指示未找到请求的段。

Proc Options

重点注意事项:

  1. 处理选项称为处理选择,包含四个字符的数据字段。

  2. 处理选项字段指示程序被授权对数据库执行哪种处理。

Reserved DL/I

重点注意事项:

  1. 保留的 DL/I 称为 IMS 的保留区域。它存储 4 个字节的二进制数据。

  2. IMS 将此区域用于与其应用程序相关的内部链接。

Segment Name

重点注意事项:

  1. SEG 名称称为段名称反馈区。它包含 8 个字节的字符数据。

  2. 每次调用 DL/I 后,段的名称将存储在此字段中。

Length FB Key

重点注意事项:

  1. 长度反馈键称为密钥反馈区的长度。它存储 4 个字节的二进制数据。

  2. 此字段用于报告在前一次调用期间处理的最低级别段的连接键的长度。

  3. 它与密钥反馈区一起使用。

Number of Sensitivity Segments

重点注意事项:

  1. 灵敏段的数量存储 4 个字节的二进制数据。

  2. 它定义了应用程序对哪个级别敏感。它表示逻辑数据结构中段的数量。

Key Feedback Area

重点注意事项:

  1. 密钥反馈区的长度因 PCB 而异。

  2. 该字段包含可用于与程序的数据库视图结合使用的最长的可能串联键。

  3. 在数据库操作后,DL/I 会返回此字段中处理的最低级别段的串联键,它还在键长度反馈区域返回键的长度。