IMS DB - Kiến thức cơ bản về Cobol

Chúng tôi bao gồm các cuộc gọi DL / I bên trong chương trình ứng dụng COBOL để giao tiếp với cơ sở dữ liệu IMS. Chúng tôi sử dụng các câu lệnh DL / I sau trong chương trình COBOL để truy cập cơ sở dữ liệu:

  • Tuyên bố đầu vào
  • Tuyên bố quay lại
  • Báo cáo cuộc gọi

Tuyên bố đầu vào

Nó được sử dụng để chuyển điều khiển từ DL / I đến chương trình COBOL. Đây là cú pháp của câu lệnh nhập -

ENTRY 'DLITCBL' USING pcb-name1
                     [pcb-name2]

Câu lệnh trên được mã hóa trong Procedure Divisioncủa một chương trình COBOL. Hãy cùng chúng tôi tìm hiểu chi tiết về câu lệnh nhập cảnh trong chương trình COBOL -

  • Mô-đun khởi tạo hàng loạt kích hoạt chương trình ứng dụng và được thực thi dưới sự kiểm soát của nó.

  • DL / I tải các khối và mô-đun điều khiển được yêu cầu và chương trình ứng dụng, và quyền điều khiển được trao cho chương trình ứng dụng.

  • DLITCBL là viết tắt của DL/I to COBOL. Câu lệnh entry được sử dụng để xác định điểm vào trong chương trình.

  • Khi chúng tôi gọi một chương trình con trong COBOL, địa chỉ của nó cũng được cung cấp. Tương tự như vậy, khi DL / I trao quyền điều khiển cho chương trình ứng dụng, nó cũng cung cấp địa chỉ của mỗi PCB được xác định trong PSB của chương trình.

  • Tất cả các PCB được sử dụng trong chương trình ứng dụng phải được xác định bên trong Linkage Section của chương trình COBOL vì PCB nằm ngoài chương trình ứng dụng.

  • Định nghĩa PCB bên trong Phần liên kết được gọi là PCB Mask.

  • Mối quan hệ giữa mặt nạ PCB và PCB thực tế đang được lưu trữ được tạo ra bằng cách liệt kê các PCB trong báo cáo đầu vào. Trình tự liệt kê trong câu lệnh nhập phải giống như trình tự xuất hiện trong PSBGEN.

Tuyên bố quay lại

Nó được sử dụng để chuyển điều khiển trở lại chương trình điều khiển IMS. Sau đây là cú pháp của câu lệnh Goback:

GOBACK

Dưới đây là những điểm cơ bản cần lưu ý về câu lệnh Goback -

  • GOBACK được mã hóa ở cuối chương trình ứng dụng. Nó trả về điều khiển DL / I từ chương trình.

  • Chúng ta không nên sử dụng STOP RUN vì nó trả lại quyền điều khiển cho hệ điều hành. Nếu chúng ta sử dụng STOP RUN, DL / I sẽ không bao giờ có cơ hội thực hiện các chức năng kết thúc của nó. Đó là lý do tại sao, trong các chương trình ứng dụng DL / I, câu lệnh Goback được sử dụng.

  • Trước khi đưa ra câu lệnh Goback, tất cả các bộ dữ liệu không phải DL / I được sử dụng trong chương trình ứng dụng COBOL phải được đóng lại, nếu không chương trình sẽ kết thúc bất thường.

Báo cáo cuộc gọi

Lệnh gọi được sử dụng để yêu cầu các dịch vụ DL / I chẳng hạn như thực hiện các hoạt động nhất định trên cơ sở dữ liệu IMS. Đây là cú pháp của câu lệnh gọi -

CALL 'CBLTDLI' USING DLI Function Code
                        PCB Mask
                        Segment I/O Area
                        [Segment Search Arguments]

Cú pháp trên hiển thị các tham số mà bạn có thể sử dụng với câu lệnh gọi. Chúng ta sẽ thảo luận về từng loại trong bảng sau:

Không. Mô tả về Thông Số
1

DLI Function Code

Xác định chức năng DL / I sẽ được thực hiện. Đối số này là tên của bốn trường ký tự mô tả hoạt động I / O.

2

PCB Mask

Định nghĩa PCB bên trong Phần liên kết được gọi là Mặt nạ PCB. Chúng được sử dụng trong câu lệnh nhập cảnh. Không yêu cầu câu lệnh SELECT, ASSIGN, OPEN hoặc CLOSE.

3

Segment I/O Area

Tên của một khu vực làm việc đầu vào / đầu ra. Đây là một khu vực của chương trình ứng dụng mà DL / I đặt một phân đoạn được yêu cầu.

4

Segment Search Arguments

Đây là các tham số tùy chọn tùy thuộc vào loại lệnh gọi được phát hành. Chúng được sử dụng để tìm kiếm các phân đoạn dữ liệu bên trong cơ sở dữ liệu IMS.

Dưới đây là những điểm cần lưu ý về câu lệnh Cuộc gọi -

  • CBLTDLI là viết tắt của COBOL to DL/I. Nó là tên của một mô-đun giao diện được liên kết chỉnh sửa với mô-đun đối tượng của chương trình của bạn.

  • Sau mỗi lần gọi DL / I, DLI lưu trữ một mã trạng thái trong PCB. Chương trình có thể sử dụng mã này để xác định xem cuộc gọi thành công hay thất bại.

Thí dụ

Để hiểu thêm về COBOL, bạn có thể xem qua hướng dẫn về COBOL của chúng tôi  tại đây . Ví dụ sau đây cho thấy cấu trúc của một chương trình COBOL sử dụng cơ sở dữ liệu IMS và các lệnh gọi DL / I. Chúng ta sẽ thảo luận chi tiết từng tham số được sử dụng trong ví dụ trong các chương sắp tới.

IDENTIFICATION DIVISION.
PROGRAM-ID. TEST1.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 DLI-FUNCTIONS.
   05 DLI-GU        PIC X(4)    VALUE 'GU  '.
   05 DLI-GHU       PIC X(4)    VALUE 'GHU '.
   05 DLI-GN        PIC X(4)    VALUE 'GN  '.
   05 DLI-GHN       PIC X(4)    VALUE 'GHN '.
   05 DLI-GNP       PIC X(4)    VALUE 'GNP '.
   05 DLI-GHNP      PIC X(4)    VALUE 'GHNP'.
   05 DLI-ISRT      PIC X(4)    VALUE 'ISRT'.
   05 DLI-DLET      PIC X(4)    VALUE 'DLET'.
   05 DLI-REPL      PIC X(4)    VALUE 'REPL'.
   05 DLI-CHKP      PIC X(4)    VALUE 'CHKP'.
   05 DLI-XRST      PIC X(4)    VALUE 'XRST'.
   05 DLI-PCB       PIC X(4)    VALUE 'PCB '.
01  SEGMENT-I-O-AREA        PIC X(150).
LINKAGE SECTION.
01  STUDENT-PCB-MASK.
   05 STD-DBD-NAME              PIC X(8).
   05 STD-SEGMENT-LEVEL         PIC XX.
   05 STD-STATUS-CODE           PIC XX.
   05 STD-PROC-OPTIONS          PIC X(4).
   05 FILLER                    PIC S9(5) COMP.
   05 STD-SEGMENT-NAME          PIC X(8).
   05 STD-KEY-LENGTH            PIC S9(5) COMP.
   05 STD-NUMB-SENS-SEGS        PIC S9(5) COMP.
   05 STD-KEY                   PIC X(11).
PROCEDURE DIVISION.
ENTRY 'DLITCBL' USING STUDENT-PCB-MASK.
A000-READ-PARA.
110-GET-INVENTORY-SEGMENT.
   CALL ‘CBLTDLI’ USING DLI-GN
                  STUDENT-PCB-MASK
                  SEGMENT-I-O-AREA.
GOBACK.