Interfejs języka danych

Data Language One (Data Language / I, DL/I, Data Language/One, Data Language/One) to system językowy używany do uzyskiwania dostępu do baz danych IBM IMS i jego systemu komunikacji danych.

Jest implementowany z wielu języków poprzez wywoływanie kodu pośredniczącego oprogramowania DFSLI000. Ten kod pośredniczący ma punkty wejścia do obsługi różnych języków programowania, np. wywoływania CBLTDLI z COBOL . Ten kod pośredniczący jest powiązany z programem wywołującym, przekazuje żądanie do systemu IMS i zwraca wyniki oraz kod stanu.

W każdej w pełni funkcjonalnej bazie danych IMS najmniejszym elementem, który można odzyskać, jest segment . Każdy segment składa się z pól , z których jedno jest zazwyczaj polem kluczowym. Segmenty są ułożone hierarchicznie w bazie danych, przy czym typem segmentu najwyższego poziomu jest segment główny. W dowolnej bazie danych dozwolonych jest 255 różnych typów segmentów, na maksymalnie 15 poziomach. Rekord bazy danych składa się z określonego segmentu głównego i wszystkich zależnych od niego segmentów potomnych – nie ma ograniczeń co do liczby segmentów w rekordzie ani liczby rekordów w bazie danych (poza fizycznymi ograniczeniami przestrzeni dyskowej).

Struktura dowolnej bazy danych jest prezentowana programowi aplikacyjnemu jako PCB (Program Communication Block) i jest wykorzystywana jako jeden z parametrów przekazywanych do kodu pośredniczącego. Inne typy PCB są używane do wysyłania i odbierania przetwarzania transakcji , dostępu i zapisu na ekranie VDU użytkownika oraz do drukowania raportów itp.

Podczas uzyskiwania dostępu do segmentu bazy danych program użytkowy używa również SSA (argumentu wyszukiwania segmentu) jako parametru w celu określenia segmentu lub segmentów, których potrzebuje. Zwykle zawiera wymagany typ segmentu i zawartość dowolnych pól kluczowych.

Dla wszystkich języków z wyjątkiem PL/I pierwszym parametrem w wywołaniu jest kod funkcji – czteroznakowe pole, na przykład: „ GU ” (Uzyskaj unikalny), „ GN ” (Pobierz następny), „ REPL ” (Zastąp), i „ ISRT ” (wstaw). W przypadku PL/I, ze względu na sposób, w jaki ten język nie oznacza ostatniego parametru „1” w bicie 0, pierwszy parametr musi zamiast tego być pełnym słowem (Fixed Bin(31)) zawierającym liczbę kolejnych parametrów.

Typowe wywołanie programu w języku COBOL może wyglądać następująco : CALL CBLTDLI USING GU , Stores-Database-PCB , Stores-Segment-Area , Stores-Root-SSA . Program automatycznie czekałby, aż żądane dane zostaną pobrane i umieszczone w obszarze segmentu. Kod stanu zawarty na płytce drukowanej zostanie zaktualizowany za pomocą spacji (jeśli wszystko poszło dobrze) lub kodu informacyjnego lub kodu błędu.

Typowym wywołaniem z programu PL/I może być CALL PLITDLI ( FOUR , GU , Stores-Database-PCB , Stores-Segment-Area , Stores-Root-SSA ); .

Linki zewnętrzne