IMS DB - Manipulacja danymi
Różne metody manipulacji danymi używane w wywołaniach IMS DL / I są następujące:
- Połączenie ISRT
- Otrzymuj połączenia zawieszone
- REPL Zadzwoń
- Połączenie DLET
Rozważmy następującą strukturę bazy danych IMS, aby zrozumieć wywołania funkcji manipulacji danymi -
Połączenie ISRT
Punkty do zapamiętania -
Wywołanie ISRT jest znane jako wywołanie wstawiania, które jest używane do dodawania wystąpień segmentów do bazy danych.
Wywołania ISRT służą do ładowania nowej bazy danych.
Wysyłamy wywołanie ISRT, gdy pole opisu segmentu jest ładowane danymi.
Niekwalifikowany lub kwalifikowany SSA musi być określony w wywołaniu, aby DL / I wiedział, gdzie umieścić wystąpienie segmentu.
W rozmowie możemy użyć kombinacji zarówno niekwalifikowanych, jak i kwalifikowanych SSA. Dla wszystkich powyższych poziomów można określić kwalifikowany SSA. Rozważmy następujący przykład -
CALL 'CBLTDLI' USING DLI-ISRT
PCB-NAME
IO-AREA
LIBRARY-SSA
BOOKS-SSA
UNQUALIFIED-ENGINEERING-SSA
Powyższy przykład pokazuje, że wysyłamy wywołanie ISRT, udostępniając kombinację kwalifikowanych i niekwalifikowanych SSA.
Gdy nowy segment, który wstawiamy, ma unikalne pole klucza, to jest on dodawany we właściwej pozycji. Jeśli pole klucza nie jest unikalne, jest dodawane zgodnie z regułami zdefiniowanymi przez administratora bazy danych.
Kiedy wywołujemy ISRT bez określania pola kluczowego, wówczas reguła wstawiania mówi, gdzie umieścić segmenty względem istniejących segmentów bliźniaczych. Poniżej podano zasady wstawiania -
First - Jeśli reguła jest pierwsza, nowy segment jest dodawany przed istniejącymi bliźniakami.
Last - Jeśli reguła jest ostatnia, nowy segment jest dodawany po wszystkich istniejących bliźniakach.
Here - Jeśli reguła jest tutaj, jest dodawana w bieżącej pozycji względem istniejących bliźniaków, które mogą być pierwsze, ostatnie lub gdziekolwiek.
Kody stanu
W poniższej tabeli przedstawiono odpowiednie kody stanu po wywołaniu ISRT -
S.Nr | Kod stanu i opis |
---|---|
1 | Spaces Udane połączenie |
2 | GE Stosowanych jest wiele SSA, a DL / I nie może spełnić połączenia z określoną ścieżką. |
3 | II Spróbuj dodać wystąpienie segmentu, które jest już obecne w bazie danych. |
4 | LB / LC LD / LE Otrzymujemy te kody stanu podczas przetwarzania ładowania. W większości przypadków wskazują one, że segmenty nie są wstawiane w dokładnej kolejności hierarchicznej. |
Odbierz połączenie zawieszone
Punkty do zapamiętania -
Istnieją trzy typy połączeń Get Hold, które określamy w wywołaniu DL / I:
Get Hold Unique (GHU)
Get Hold Next (GHN)
Get Hold Next within Parent (GHNP)
Funkcja Hold określa, że będziemy aktualizować segment po pobraniu. Tak więc przed wywołaniem REPL lub DLET musi zostać wydane połączenie zawieszające z powodzeniem, informujące DL / I o zamiarze aktualizacji bazy danych.
REPL Zadzwoń
Punkty do zapamiętania -
Po pomyślnym odebraniu połączenia zawieszonego wysyłamy wywołanie REPL, aby zaktualizować wystąpienie segmentu.
Nie możemy zmienić długości segmentu za pomocą wywołania REPL.
Nie możemy zmienić wartości pola klucza za pomocą wywołania REPL.
Nie możemy używać kwalifikowanego SSA z wywołaniem REPL. Jeśli określimy kwalifikowany SSA, wywołanie nie powiedzie się.
CALL 'CBLTDLI' USING DLI-GHU
PCB-NAME
IO-AREA
LIBRARY-SSA
BOOKS-SSA
ENGINEERING-SSA
IT-SSA.
*Move the values which you want to update in IT segment occurrence*
CALL ‘CBLTDLI’ USING DLI-REPL
PCB-NAME
IO-AREA.
Powyższy przykład aktualizuje wystąpienie segmentu IT za pomocą wywołania REPL. Najpierw wysyłamy wywołanie GHU, aby uzyskać wystąpienie segmentu, które chcemy zaktualizować. Następnie wysyłamy wywołanie REPL, aby zaktualizować wartości tego segmentu.
Połączenie DLET
Punkty do zapamiętania -
Wywołanie DLET działa w podobny sposób, jak wywołanie REPL.
Po pomyślnym odebraniu połączenia, wysyłamy wywołanie DLET, aby usunąć wystąpienie segmentu.
Nie możemy używać kwalifikowanego SSA z połączeniem DLET. Jeśli określimy kwalifikowany SSA, wywołanie nie powiedzie się.
CALL 'CBLTDLI' USING DLI-GHU
PCB-NAME
IO-AREA
LIBRARY-SSA
BOOKS-SSA
ENGINEERING-SSA
IT-SSA.
CALL ‘CBLTDLI’ USING DLI-DLET
PCB-NAME
IO-AREA.
Powyższy przykład usuwa wystąpienie segmentu IT za pomocą wywołania DLET. Najpierw wysyłamy wywołanie GHU, aby uzyskać wystąpienie segmentu, które chcemy usunąć. Następnie wysyłamy wywołanie DLET, aby zaktualizować wartości tego segmentu.
Kody stanu
W poniższej tabeli przedstawiono odpowiednie kody stanu po wywołaniu REPL lub DLET -
S.Nr | Kod stanu i opis |
---|---|
1 | Spaces Udane połączenie |
2 | AJ Kwalifikowany SSA używany w połączeniu REPL lub DLET. |
3 | DJ Program wysyła połączenie zastępcze bez poprzedzającego go bezpośrednio połączenia wstrzymanego. |
4 | DA Program dokonuje zmiany w polu klucza segmentu przed wywołaniem REPL lub DLET |