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.