IMS DB - Hàm DL / I
Hàm DL / I là tham số đầu tiên được sử dụng trong lệnh gọi DL / I. Hàm này cho biết thao tác nào sẽ được thực hiện trên cơ sở dữ liệu IMS bằng lệnh gọi IMS DL / I. Cú pháp của hàm DL / I như sau:
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 '.
Cú pháp này đại diện cho các điểm chính sau:
Đối với tham số này, chúng tôi có thể cung cấp bất kỳ tên gồm bốn ký tự nào làm trường lưu trữ để lưu mã hàm.
Tham số hàm DL / I được mã hóa trong phần lưu trữ làm việc của chương trình COBOL.
Để chỉ định hàm DL / I, lập trình viên cần mã một trong 05 tên dữ liệu cấp như DLI-GU trong lệnh gọi DL / I, vì COBOL không cho phép mã hóa các ký tự trên câu lệnh CALL.
Các chức năng DL / I được chia thành ba loại: Nhận, Cập nhật và Các chức năng khác. Hãy để chúng tôi thảo luận chi tiết từng người trong số họ.
Nhận các chức năng
Các hàm Get tương tự như thao tác đọc được hỗ trợ bởi bất kỳ ngôn ngữ lập trình nào. Hàm Get được sử dụng để tìm nạp các phân đoạn từ cơ sở dữ liệu IMS DL / I. Các hàm Get sau được sử dụng trong IMS DB:
- Nhận duy nhất
- Tiếp theo
- Tiếp theo trong Parent
- Nhận duy nhất
- Giữ tiếp theo
- Tiếp tục giữ trong vòng Parent
Chúng ta hãy xem xét cấu trúc cơ sở dữ liệu IMS sau đây để hiểu các lệnh gọi hàm DL / I:
Nhận duy nhất
Mã 'GU' được sử dụng cho chức năng Nhận duy nhất. Nó hoạt động tương tự như câu lệnh đọc ngẫu nhiên trong COBOL. Nó được sử dụng để tìm nạp một lần xuất hiện phân đoạn cụ thể dựa trên các giá trị trường. Các giá trị trường có thể được cung cấp bằng cách sử dụng các đối số tìm kiếm phân đoạn. Cú pháp của cuộc gọi GU như sau:
CALL 'CBLTDLI' USING DLI-GU
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Nếu bạn thực hiện lệnh gọi ở trên bằng cách cung cấp các giá trị thích hợp cho tất cả các tham số trong chương trình COBOL, bạn có thể lấy phân đoạn trong khu vực I / O phân đoạn từ cơ sở dữ liệu. Trong ví dụ trên, nếu bạn cung cấp các giá trị trường của Thư viện, Tạp chí và Sức khỏe, thì bạn sẽ nhận được sự xuất hiện mong muốn của phân đoạn Sức khỏe.
Tiếp theo
Mã 'GN' được sử dụng cho chức năng Get Next. Nó hoạt động tương tự như câu lệnh đã đọc tiếp theo trong COBOL. Nó được sử dụng để tìm nạp các lần xuất hiện của phân đoạn trong một trình tự. Mẫu được xác định trước để truy cập các lần xuất hiện phân đoạn dữ liệu là theo phân cấp, sau đó từ trái sang phải. Cú pháp của lệnh gọi GN như sau:
CALL 'CBLTDLI' USING DLI-GN
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Nếu bạn thực hiện lệnh gọi ở trên bằng cách cung cấp các giá trị thích hợp cho tất cả các tham số trong chương trình COBOL, bạn có thể truy xuất sự xuất hiện phân đoạn trong khu vực I / O phân đoạn từ cơ sở dữ liệu theo thứ tự tuần tự. Trong ví dụ trên, nó bắt đầu với việc truy cập phân đoạn Thư viện, sau đó là phân đoạn Sách, v.v. Chúng tôi thực hiện lệnh gọi GN lặp đi lặp lại, cho đến khi chúng tôi đạt được sự xuất hiện phân đoạn mà chúng tôi muốn.
Tiếp theo trong Parent
Mã 'GNP' được sử dụng cho Get Next trong Parent. Hàm này được sử dụng để truy xuất các lần xuất hiện của phân đoạn theo trình tự phụ với phân đoạn mẹ đã thiết lập. Cú pháp của lệnh gọi GNP như sau:
CALL 'CBLTDLI' USING DLI-GNP
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Nhận duy nhất
Mã 'GHU' được sử dụng để Nhận Giữ hàng Duy nhất. Hàm Hold chỉ định rằng chúng tôi sẽ cập nhật phân đoạn sau khi truy xuất. Chức năng Nhận Giữ Duy nhất tương ứng với cuộc gọi Nhận Duy nhất. Dưới đây là cú pháp của cuộc gọi GHU -
CALL 'CBLTDLI' USING DLI-GHU
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Giữ tiếp theo
Mã 'GHN' được sử dụng cho Nhận Giữ Tiếp theo. Hàm Hold chỉ định rằng chúng tôi sẽ cập nhật phân đoạn sau khi truy xuất. Chức năng Nhận Giữ Tiếp theo tương ứng với cuộc gọi Tiếp theo. Dưới đây là cú pháp của lệnh gọi GHN -
CALL 'CBLTDLI' USING DLI-GHN
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Tiếp tục giữ trong vòng Parent
Mã 'GHNP' được sử dụng để Nhận Tiếp theo trong vòng dành cho Phụ huynh. Hàm Hold chỉ định rằng chúng tôi sẽ cập nhật phân đoạn sau khi truy xuất. Chức năng Get Hold Next trong Parent tương ứng với lệnh Get Next trong Parent. Dưới đây là cú pháp của cuộc gọi GHNP -
CALL 'CBLTDLI' USING DLI-GHNP
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Cập nhật chức năng
Các chức năng cập nhật tương tự như thao tác viết lại hoặc chèn trong bất kỳ ngôn ngữ lập trình nào khác. Các chức năng cập nhật được sử dụng để cập nhật các phân đoạn trong cơ sở dữ liệu IMS DL / I. Trước khi sử dụng chức năng cập nhật, phải có một cuộc gọi thành công với mệnh đề Giữ cho sự xuất hiện của phân đoạn. Các chức năng Cập nhật sau được sử dụng trong IMS DB -
- Insert
- Delete
- Replace
Chèn
Mã 'ISRT' được sử dụng cho chức năng Chèn. Hàm ISRT được sử dụng để thêm một phân đoạn mới vào cơ sở dữ liệu. Nó được sử dụng để thay đổi cơ sở dữ liệu hiện có hoặc tải cơ sở dữ liệu mới. Dưới đây là cú pháp của lệnh gọi ISRT -
CALL 'CBLTDLI' USING DLI-ISRT
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Xóa bỏ
Mã 'DLET' được sử dụng cho chức năng Xóa. Nó được sử dụng để xóa một phân đoạn khỏi cơ sở dữ liệu IMS DL / I. Dưới đây là cú pháp của lệnh gọi DLET -
CALL 'CBLTDLI' USING DLI-DLET
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Thay thế
Mã 'REPL' được sử dụng cho Nhận Giữ Tiếp theo trong Parent. Hàm Replace được sử dụng để thay thế một đoạn trong cơ sở dữ liệu IMS DL / I. Dưới đây là cú pháp của cuộc gọi REPL -
CALL 'CBLTDLI' USING DLI-REPL
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Cac chưc năng khac
Các chức năng khác sau đây được sử dụng trong lệnh gọi IMS DL / I:
- Checkpoint
- Restart
- PCB
Trạm kiểm soát
Mã 'CHKP' được sử dụng cho chức năng Điểm kiểm tra. Nó được sử dụng trong các tính năng khôi phục của IMS. Dưới đây là cú pháp của cuộc gọi CHKP -
CALL 'CBLTDLI' USING DLI-CHKP
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Khởi động lại
Mã 'XRST' được sử dụng cho chức năng Khởi động lại. Nó được sử dụng trong các tính năng khởi động lại của IMS. Dưới đây là cú pháp của cuộc gọi XRST -
CALL 'CBLTDLI' USING DLI-XRST
PCB Mask
Segment I/O Area
[Segment Search Arguments]
PCB
Chức năng PCB được sử dụng trong các chương trình CICS trong cơ sở dữ liệu IMS DL / I. Dưới đây là cú pháp của cuộc gọi PCB -
CALL 'CBLTDLI' USING DLI-PCB
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Bạn có thể tìm thêm chi tiết về các chức năng này trong chương khôi phục.