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.