IMS DB - Cobol Temelleri
IMS veritabanı ile iletişim kurmak için COBOL uygulama programına DL / I çağrılarını dahil ediyoruz. Veritabanına erişmek için COBOL programında aşağıdaki DL / I ifadelerini kullanıyoruz -
- Giriş Bildirimi
- Goback İfadesi
- Çağrı Bildirimi
Giriş Bildirimi
Kontrolü DL / I'den COBOL programına geçirmek için kullanılır. İşte giriş ifadesinin sözdizimi -
ENTRY 'DLITCBL' USING pcb-name1
[pcb-name2]
Yukarıdaki ifade, Procedure DivisionBir COBOL programının. COBOL programındaki giriş bildiriminin ayrıntılarına girelim -
Toplu başlatma modülü, uygulama programını tetikler ve onun kontrolü altında yürütülür.
DL / I, gerekli kontrol bloklarını, modülleri ve uygulama programını yükler ve kontrol, uygulama programına verilir.
DLITCBL, DL/I to COBOL. Giriş ifadesi, programdaki giriş noktasını tanımlamak için kullanılır.
COBOL'de bir alt program çağırdığımızda, adresi de verilir. Aynı şekilde, DL / I kontrolü uygulama programına verdiğinde, programın PSB'sinde tanımlanan her bir PCB'nin adresini de sağlar.
Uygulama programında kullanılan tüm PCB'ler, içinde tanımlanmalıdır. Linkage Section COBOL programı, çünkü PCB uygulama programının dışında yer alıyor.
Bağlantı Bölümü içindeki PCB tanımına şu ad verilir: PCB Mask.
PCB maskeleri ile depolamadaki gerçek PCB'ler arasındaki ilişki, PCB'lerin giriş ifadesinde listelenmesiyle oluşturulur. Giriş ifadesindeki listeleme sırası, PSBGEN'de göründükleriyle aynı olmalıdır.
Goback İfadesi
Kontrolü tekrar IMS kontrol programına geçirmek için kullanılır. Goback ifadesinin sözdizimi aşağıdadır -
GOBACK
Aşağıda Goback ifadesiyle ilgili dikkat edilmesi gereken temel noktalar listelenmiştir -
GOBACK, uygulama programının sonunda kodlanmıştır. Kontrolü programdan DL / I'ye döndürür.
Kontrolü işletim sistemine döndürdüğü için STOP RUN'u kullanmamalıyız. STOP RUN kullanırsak, DL / I hiçbir zaman sonlandırma işlevlerini yerine getirme şansı bulamaz. Bu nedenle DL / I uygulama programlarında Goback ifadesi kullanılır.
Bir Goback ifadesi yayınlamadan önce, COBOL uygulama programında kullanılan tüm DL / I olmayan veri kümelerinin kapatılması gerekir, aksi takdirde program anormal şekilde sona erer.
Çağrı Bildirimi
Çağrı ifadesi, IMS veritabanında belirli işlemleri yürütmek gibi DL / I hizmetlerini talep etmek için kullanılır. İşte çağrı ifadesinin sözdizimi -
CALL 'CBLTDLI' USING DLI Function Code
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Yukarıdaki sözdizimi, call deyimiyle kullanabileceğiniz parametreleri gösterir. Her birini aşağıdaki tabloda tartışacağız -
S.No. | Parametre ve Açıklama |
---|---|
1 | DLI Function Code Gerçekleştirilecek DL / I işlevini tanımlar. Bu bağımsız değişken, G / Ç işlemini tanımlayan dört karakterli alanın adıdır. |
2 | PCB Mask Bağlantı Bölümü içindeki PCB tanımına PCB Maskesi denir. Giriş ifadesinde kullanılırlar. SELECT, ASSIGN, OPEN veya CLOSE deyimleri gerekli değildir. |
3 | Segment I/O Area Bir giriş / çıkış çalışma alanının adı. Bu, DL / I'in istenen segmenti koyduğu uygulama programının bir alanıdır. |
4 | Segment Search Arguments Bunlar, yapılan çağrının türüne bağlı olarak isteğe bağlı parametrelerdir. IMS veritabanı içindeki veri segmentlerini aramak için kullanılırlar. |
Aşağıda, Çağrı ifadesiyle ilgili dikkat edilmesi gereken noktalar verilmiştir -
CBLTDLI'nin kısaltması COBOL to DL/I. Programınızın nesne modülüyle bağlantılı olarak düzenlenen bir arayüz modülünün adıdır.
Her DL / I aramasından sonra DLI, PCB'de bir durum kodu depolar. Program, aramanın başarılı olup olmadığını belirlemek için bu kodu kullanabilir.
Misal
COBOL hakkında daha fazla bilgi edinmek için COBOL eğitimimizi buradan inceleyebilirsiniz . Aşağıdaki örnek, IMS veritabanı ve DL / I çağrılarını kullanan bir COBOL programının yapısını gösterir. Örnekte kullanılan parametrelerin her birini ilerideki bölümlerde ayrıntılı olarak tartışacağız.
IDENTIFICATION DIVISION.
PROGRAM-ID. TEST1.
DATA DIVISION.
WORKING-STORAGE SECTION.
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 '.
01 SEGMENT-I-O-AREA PIC X(150).
LINKAGE SECTION.
01 STUDENT-PCB-MASK.
05 STD-DBD-NAME PIC X(8).
05 STD-SEGMENT-LEVEL PIC XX.
05 STD-STATUS-CODE PIC XX.
05 STD-PROC-OPTIONS PIC X(4).
05 FILLER PIC S9(5) COMP.
05 STD-SEGMENT-NAME PIC X(8).
05 STD-KEY-LENGTH PIC S9(5) COMP.
05 STD-NUMB-SENS-SEGS PIC S9(5) COMP.
05 STD-KEY PIC X(11).
PROCEDURE DIVISION.
ENTRY 'DLITCBL' USING STUDENT-PCB-MASK.
A000-READ-PARA.
110-GET-INVENTORY-SEGMENT.
CALL ‘CBLTDLI’ USING DLI-GN
STUDENT-PCB-MASK
SEGMENT-I-O-AREA.
GOBACK.