IMS DB - Fungsi DL / I

Fungsi DL / I adalah parameter pertama yang digunakan dalam panggilan DL / I. Fungsi ini memberi tahu operasi mana yang akan dilakukan pada database IMS dengan panggilan IMS DL / I. Sintaks fungsi DL / I adalah sebagai berikut -

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 '.

Sintaks ini mewakili poin-poin penting berikut -

  • Untuk parameter ini, kami dapat memberikan nama empat karakter apa pun sebagai bidang penyimpanan untuk menyimpan kode fungsi.

  • Parameter fungsi DL / I dikodekan di bagian penyimpanan kerja program COBOL.

  • Untuk menentukan fungsi DL / I, programmer perlu mengkodekan salah satu dari nama data level 05 seperti DLI-GU dalam panggilan DL / I, karena COBOL tidak mengizinkan kode literal pada pernyataan CALL.

  • Fungsi DL / I dibagi menjadi tiga kategori: Dapatkan, Perbarui, dan Fungsi lainnya. Mari kita bahas masing-masing secara rinci.

Dapatkan Fungsi

Fungsi Get mirip dengan operasi baca yang didukung oleh bahasa pemrograman apa pun. Fungsi get digunakan untuk mengambil segmen dari database IMS DL / I. Fungsi Get berikut digunakan di IMS DB -

  • Menjadi Unik
  • Dapatkan Berikutnya
  • Dapatkan Berikutnya dalam Parent
  • Dapatkan Pegangan Unik
  • Bertahan Selanjutnya
  • Bertahan Berikutnya dalam Orang Tua

Mari kita pertimbangkan struktur database IMS berikut untuk memahami panggilan fungsi DL / I -

Menjadi Unik

Kode 'GU' digunakan untuk fungsi Get Unique. Cara kerjanya mirip dengan pernyataan baca acak di COBOL. Ini digunakan untuk mengambil kejadian segmen tertentu berdasarkan nilai bidang. Nilai bidang dapat diberikan menggunakan argumen pencarian segmen. Sintaks dari panggilan GU adalah sebagai berikut -

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

Jika Anda menjalankan pernyataan panggilan di atas dengan memberikan nilai yang sesuai untuk semua parameter dalam program COBOL, Anda dapat mengambil segmen di area I / O segmen dari database. Dalam contoh di atas, jika Anda memberikan nilai bidang Perpustakaan, Majalah, dan Kesehatan, maka Anda mendapatkan kemunculan segmen Kesehatan yang diinginkan.

Dapatkan Berikutnya

Kode 'GN' digunakan untuk fungsi Get Next. Ini bekerja mirip dengan pernyataan baca berikutnya di COBOL. Ini digunakan untuk mengambil kejadian segmen secara berurutan. Pola yang telah ditentukan untuk mengakses kejadian segmen data berada di bawah hierarki, lalu dari kiri ke kanan. Sintaks dari panggilan GN adalah sebagai berikut -

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

Jika Anda menjalankan pernyataan panggilan di atas dengan memberikan nilai yang sesuai untuk semua parameter dalam program COBOL, Anda dapat mengambil kejadian segmen di area I / O segmen dari database secara berurutan. Pada contoh di atas, dimulai dengan mengakses segmen Perpustakaan, lalu segmen Buku, dan seterusnya. Kami melakukan pemanggilan GN berulang kali, hingga kami mencapai kemunculan segmen yang kami inginkan.

Dapatkan Berikutnya dalam Parent

Kode 'GNP' digunakan untuk Get Next dalam Parent. Fungsi ini digunakan untuk mengambil kejadian segmen secara berurutan di bawah segmen induk yang telah ditetapkan. Sintaks dari panggilan GNP adalah sebagai berikut -

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

Dapatkan Pegangan Unik

Kode 'GHU' digunakan untuk Get Hold Unique. Fungsi tahan menentukan bahwa kita akan memperbarui segmen setelah pengambilan. Fungsi Get Hold Unique terkait dengan panggilan Get Unique. Diberikan di bawah ini adalah sintaks dari panggilan GHU -

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

Bertahan Selanjutnya

Kode 'GHN' digunakan untuk Get Hold Next. Fungsi tahan menentukan bahwa kita akan memperbarui segmen setelah pengambilan. Fungsi Get Hold Next berhubungan dengan panggilan Get Next. Diberikan di bawah ini adalah sintaks dari panggilan GHN -

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

Bertahan Berikutnya dalam Orang Tua

Kode 'GHNP' digunakan untuk Get Hold Next dalam Parent. Fungsi tahan menentukan bahwa kita akan memperbarui segmen setelah pengambilan. Fungsi Get Hold Next dalam Parent berhubungan dengan panggilan Get Next in Parent. Diberikan di bawah ini adalah sintaks dari panggilan GHNP -

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

Perbarui Fungsi

Fungsi pemutakhiran mirip dengan operasi penulisan ulang atau penyisipan dalam bahasa pemrograman lain. Fungsi pembaruan digunakan untuk memperbarui segmen dalam database IMS DL / I. Sebelum menggunakan fungsi pembaruan, harus ada panggilan yang berhasil dengan klausa Tahan untuk terjadinya segmen. Fungsi Pembaruan berikut digunakan di IMS DB -

  • Insert
  • Delete
  • Replace

Memasukkan

Kode 'ISRT' digunakan untuk fungsi Sisipkan. Fungsi ISRT digunakan untuk menambahkan segmen baru ke database. Ini digunakan untuk mengubah database yang ada atau memuat database baru. Diberikan di bawah ini adalah sintaks dari panggilan ISRT -

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

Menghapus

Kode 'DLET' digunakan untuk fungsi Hapus. Ini digunakan untuk menghapus segmen dari database IMS DL / I. Diberikan di bawah ini adalah sintaks dari panggilan DLET -

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

Menggantikan

Kode 'REPL' digunakan untuk Get Hold Next dalam Parent. Fungsi Replace digunakan untuk mengganti segmen dalam database IMS DL / I. Diberikan di bawah ini adalah sintaks dari panggilan REPL -

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

Fungsi Lainnya

Fungsi lain berikut ini digunakan dalam panggilan IMS DL / I -

  • Checkpoint
  • Restart
  • PCB

Pos pemeriksaan

Kode 'CHKP' digunakan untuk fungsi Checkpoint. Ini digunakan dalam fitur pemulihan IMS. Diberikan di bawah ini adalah sintaks dari panggilan CHKP -

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

Mengulang kembali

Kode 'XRST' digunakan untuk fungsi Restart. Ini digunakan dalam fitur restart IMS. Diberikan di bawah ini adalah sintaks dari panggilan XRST -

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

PCB

Fungsi PCB digunakan dalam program CICS dalam database IMS DL / I. Diberikan di bawah ini adalah sintaks dari panggilan PCB -

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

Anda dapat menemukan detail selengkapnya tentang fungsi-fungsi ini di bab pemulihan.