📅  最后修改于: 2020-11-27 05:16:44             🧑  作者: Mango
包含DL / I调用的应用程序无法直接执行。相反,需要使用JCL来触发IMS DL / I批处理模块。 IMS中的批处理初始化模块是DFSRRC00。应用程序和DL / I模块一起执行。下图显示了包含访问数据库的DL / I调用的应用程序的结构。
应用程序通过以下程序元素与IMS DL / I模块接口-
ENTRY语句指定程序使用PCB。
PCB掩模与预先构造的PCB中保存的信息相关,后者从IMS接收返回信息。
输入输出区域用于将数据段往返于IMS数据库。
对DL / I的调用指定了处理功能,例如获取,插入,删除,替换等。
检查状态码用于检查指定的处理选项的SQL返回码,以通知操作是否成功。
Terminate语句用于结束对包含DL / I的应用程序的处理。
到目前为止,我们了解到IMS包含用于高级编程语言中的用于访问数据的段。考虑一下我们前面已经看到的库的以下IMS数据库结构,在这里我们看到了COBOL中其段的布局-
01 LIBRARY-SEGMENT.
05 BOOK-ID PIC X(5).
05 ISSUE-DATE PIC X(10).
05 RETURN-DATE PIC X(10).
05 STUDENT-ID PIC A(25).
01 BOOK-SEGMENT.
05 BOOK-ID PIC X(5).
05 BOOK-NAME PIC A(30).
05 AUTHOR PIC A(25).
01 STUDENT-SEGMENT.
05 STUDENT-ID PIC X(5).
05 STUDENT-NAME PIC A(25).
05 DIVISION PIC X(10).
IMS应用程序的结构与Non-IMS应用程序的结构不同。 IMS程序不能直接执行;而是始终将其称为子例程。 IMS应用程序由程序规范块组成,以提供IMS数据库的视图。
当我们执行包含IMS DL / I模块的应用程序时,将加载应用程序和链接到该程序的PSB。然后,由应用程序触发的CALL请求由IMS模块执行。
应用程序使用以下IMS服务-