IMS DB - PCB 掩模
PCB 代表程序通信块。PCB Mask 是 DL/I 调用中使用的第二个参数。它在链接部分中声明。下面给出的是 PCB 掩模的语法 -
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).
以下是需要注意的要点 -
对于每个数据库,DL/I 维护一个称为程序通信块的存储区域。它存储有关应用程序内部访问的数据库的信息。
ENTRY 语句在链接部分中的 PCB 掩码与程序 PSB 中的 PCB 之间创建连接。DL/I 调用中使用的 PCB 掩码告知要使用哪个数据库进行操作。
您可以假设这类似于在 COBOL READ 语句中指定文件名或在 COBOL 写入语句中指定记录名称。不需要 SELECT、ASSIGN、OPEN 或 CLOSE 语句。
每次 DL/I 调用后,DL/I 都会在 PCB 中存储一个状态代码,程序可以使用该代码来确定调用是成功还是失败。
电路板名称
注意事项 -
PCB名称是区域的名称,指的是PCB字段的整个结构。
PCB 名称用于程序语句中。
PCB 名称不是 PCB 中的字段。
数据库名称
注意事项 -
DBD 名称包含字符数据。它有八个字节长。
PCB 中的第一个字段是正在处理的数据库的名称,它提供来自与特定数据库关联的数据库描述库的 DBD 名称。
段级
注意事项 -
段级别称为段层次级别指示器。它包含字符数据,长度为两个字节。
段级别字段存储已处理的段的级别。当成功检索段时,此处存储检索到的段的级别号。
段级别字段的值永远不会大于 15,因为这是 DL/I 数据库中允许的最大级别数。
状态码
注意事项 -
状态码字段包含两个字节的字符数据。
状态代码包含 DL/I 状态代码。
当 DL/I 成功完成呼叫处理时,空格将移至状态代码字段。
非空格值表示调用不成功。
状态码GB表示文件结束,状态码GE表示未找到请求的段。
过程选项
注意事项 -
Proc 选项称为处理选项,包含四个字符的数据字段。
处理选项字段指示程序被授权对数据库执行何种处理。
保留DL/I
注意事项 -
保留的DL/I被称为IMS的保留区域。它存储四个字节的二进制数据。
IMS 使用该区域作为其自身与应用程序相关的内部链接。
段名称
注意事项 -
SEG Name被称为段名称反馈区。它包含 8 个字节的字符数据。
每次 DL/I 调用后,段名称都存储在该字段中。
FB 密钥长度
注意事项 -
FB键长度被称为键反馈区域的长度。它存储四个字节的二进制数据。
该字段用于报告上次调用期间处理的最低级别段的级联密钥的长度。
它与按键反馈区域一起使用。
敏感段数
注意事项 -
多个敏感段存储四个字节的二进制数据。
它定义了应用程序对哪个级别敏感。它表示逻辑数据结构中段的数量。
关键反馈区
注意事项 -
不同 PCB 的按键反馈区域长度各不相同。
它包含可与数据库的程序视图一起使用的最长可能的串联键。
数据库操作完成后,DL/I返回该字段中处理的最低级段的级联密钥,并在密钥长度反馈区中返回密钥的长度。