IMS DB - DL / I İşlevleri
DL / I işlevi, bir DL / I çağrısında kullanılan ilk parametredir. Bu işlev, IMS DL / I çağrısı ile IMS veri tabanında hangi işlemin gerçekleştirileceğini söyler. DL / I işlevinin sözdizimi aşağıdaki gibidir -
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 '.
Bu sözdizimi aşağıdaki temel noktaları temsil eder -
Bu parametre için, işlev kodunu saklamak için herhangi bir dört karakterli adı depolama alanı olarak sağlayabiliriz.
DL / I fonksiyon parametresi, COBOL programının çalışma depolama bölümünde kodlanmıştır.
DL / I işlevini belirtmek için, programcının bir DL / I çağrısında DLI-GU gibi 05 düzey veri adlarından birini kodlaması gerekir, çünkü COBOL bir CALL deyiminde sabit değerlerin kodlanmasına izin vermez.
DL / I işlevleri üç kategoriye ayrılır: Al, Güncelle ve Diğer işlevler. Her birini ayrıntılı olarak tartışalım.
İşlevleri Alın
Get işlevleri, herhangi bir programlama dili tarafından desteklenen okuma işlemine benzer. Get işlevi, segmentleri bir IMS DL / I veritabanından almak için kullanılır. Aşağıdaki Get işlevleri IMS DB'de kullanılır -
- Benzersiz Olun
- Sıradaki
- Üst Öğede Sonrakini Al
- Benzersiz Tutun
- Sıradaki Bekleyin
- Üst Öğede Sonrakini Tutun
DL / I işlevi çağrılarını anlamak için aşağıdaki IMS veritabanı yapısını ele alalım -
Benzersiz Olun
Get Unique işlevi için 'GU' kodu kullanılır. COBOL'daki rastgele okuma ifadesine benzer şekilde çalışır. Alan değerlerine göre belirli bir segment oluşumunu getirmek için kullanılır. Alan değerleri, segment arama argümanları kullanılarak sağlanabilir. Bir GU çağrısının sözdizimi aşağıdaki gibidir -
CALL 'CBLTDLI' USING DLI-GU
PCB Mask
Segment I/O Area
[Segment Search Arguments]
COBOL programındaki tüm parametreler için uygun değerler sağlayarak yukarıdaki çağrı ifadesini yürütürseniz, segment G / Ç alanındaki segmenti veritabanından alabilirsiniz. Yukarıdaki örnekte, Kitaplık, Dergiler ve Sağlık alan değerlerini sağlarsanız, Sağlık segmentinin istenen oluşumunu elde edersiniz.
Sıradaki
Get Next işlevi için 'GN' kodu kullanılır. COBOL'daki sonraki oku ifadesine benzer şekilde çalışır. Bir sıradaki segment oluşumlarını getirmek için kullanılır. Veri segmenti oluşumlarına erişim için önceden tanımlanmış model hiyerarşinin aşağısına, ardından soldan sağa doğrudur. Bir GN çağrısının sözdizimi aşağıdaki gibidir -
CALL 'CBLTDLI' USING DLI-GN
PCB Mask
Segment I/O Area
[Segment Search Arguments]
COBOL programındaki tüm parametreler için uygun değerler sağlayarak yukarıdaki çağrı ifadesini yürütürseniz, segment G / Ç alanındaki segment oluşumunu veritabanından sıralı bir sırada alabilirsiniz. Yukarıdaki örnekte, Kitaplık segmentine, ardından Kitaplar segmentine vb. Erişimle başlar. İstediğimiz segment oluşumuna ulaşana kadar GN çağrısını tekrar tekrar yapıyoruz.
Üst Öğede Sonrakini Al
'GNP' kodu, Üst Öğe içinde Sonraki Al için kullanılır. Bu fonksiyon, kurulu bir üst segmentin alt sırasındaki segment oluşumlarını almak için kullanılır. Bir GNP çağrısının sözdizimi aşağıdaki gibidir -
CALL 'CBLTDLI' USING DLI-GNP
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Benzersiz Tutun
Get Hold Unique için 'GHU' kodu kullanılır. Hold fonksiyonu, geri alma işleminden sonra segmenti güncelleyeceğimizi belirtir. Benzersiz Bekletme işlevi Benzersiz Al çağrısına karşılık gelir. Aşağıda bir GHU çağrısının sözdizimi verilmiştir -
CALL 'CBLTDLI' USING DLI-GHU
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Sıradaki Bekleyin
Get Hold Next için 'GHN' kodu kullanılır. Hold fonksiyonu, geri alma işleminden sonra segmenti güncelleyeceğimizi belirtir. Sonrakini Beklet işlevi, Sonraki Aramaya karşılık gelir. Aşağıda bir GHN çağrısının sözdizimi verilmiştir -
CALL 'CBLTDLI' USING DLI-GHN
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Üst Öğede Sonrakini Tutun
'GHNP' kodu, Ebeveyn içinde Sonraki Bekletme için kullanılır. Hold fonksiyonu, geri alma işleminden sonra segmenti güncelleyeceğimizi belirtir. Ebeveyn içinde Sonrakini Beklet işlevi, Ebeveyn aramasında Sonrakini Al'a karşılık gelir. Aşağıda bir GHNP çağrısının sözdizimi verilmiştir -
CALL 'CBLTDLI' USING DLI-GHNP
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Güncelleme İşlevleri
Güncelleme işlevleri, başka herhangi bir programlama dilinde yeniden yazma veya ekleme işlemlerine benzer. Güncelleme işlevleri, bir IMS DL / I veritabanındaki segmentleri güncellemek için kullanılır. Güncelleme işlevini kullanmadan önce, segment oluşumu için Hold yan tümcesine sahip başarılı bir çağrı olmalıdır. IMS DB'de aşağıdaki Güncelleme işlevleri kullanılır -
- Insert
- Delete
- Replace
Ekle
Ekle işlevi için 'ISRT' kodu kullanılır. ISRT işlevi, veritabanına yeni bir segment eklemek için kullanılır. Mevcut bir veritabanını değiştirmek veya yeni bir veritabanı yüklemek için kullanılır. Aşağıda bir ISRT çağrısının sözdizimi verilmiştir -
CALL 'CBLTDLI' USING DLI-ISRT
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Sil
Silme işlevi için 'DLET' kodu kullanılır. Bir IMS DL / I veritabanından bir segmenti kaldırmak için kullanılır. Aşağıda bir DLET çağrısının sözdizimi verilmiştir -
CALL 'CBLTDLI' USING DLI-DLET
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Değiştir
'REPL' kodu, Ebeveyn içinde Sonraki Bekletme için kullanılır. Değiştir işlevi, IMS DL / I veritabanındaki bir segmenti değiştirmek için kullanılır. Aşağıda bir REPL çağrısının sözdizimi verilmiştir -
CALL 'CBLTDLI' USING DLI-REPL
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Diğer fonksiyonlar
IMS DL / I çağrılarında aşağıdaki diğer işlevler kullanılır -
- Checkpoint
- Restart
- PCB
Kontrol noktası
Checkpoint işlevi için 'CHKP' kodu kullanılır. IMS'nin kurtarma özelliklerinde kullanılır. Aşağıda bir CHKP çağrısının sözdizimi verilmiştir -
CALL 'CBLTDLI' USING DLI-CHKP
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Tekrar başlat
Yeniden Başlatma işlevi için 'XRST' kodu kullanılır. IMS'nin yeniden başlatma özelliklerinde kullanılır. Aşağıda bir XRST çağrısının sözdizimi verilmiştir -
CALL 'CBLTDLI' USING DLI-XRST
PCB Mask
Segment I/O Area
[Segment Search Arguments]
PCB
PCB işlevi, IMS DL / I veritabanındaki CICS programlarında kullanılmaktadır. Aşağıda bir PCB çağrısının sözdizimi verilmiştir -
CALL 'CBLTDLI' USING DLI-PCB
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Kurtarma bölümünde bu işlevler hakkında daha fazla ayrıntı bulabilirsiniz.