IMS DB - извлечение данных


Advertisements

различных данных методов, используемых в IMS DL/I вызовы следующим образом:

  • GU вызов
  • GN вызов
  • С помощью команды кодов неисправностей
  • Несколько

Давайте рассмотрим следующие IMS структуры базы данных для понимания данных функции вызовов:

IMS DATABASE1

GU вызов

Основы GU вызова, следующим образом:

  • GU вызов известен как получить уникальный вызов. Он используется для случайных обработки.

  • Если приложение не обновления базы данных реGUлярно или если число обновлений базы данных меньше, затем мы используем случайных обработки.

  • GU вызова используется для поместите курсор на особое положение для дальнейшего последовательного поиска.

  • GU вызовов в положении указателя в предыдущих вызовов.

  • GU обработки вызовов на основе уникальных ключевых полей в комплекте call.

  • Если мы в поле ключа, не является уникальным, а затем DL/I возвращает первый сегмент событие в ключевых местах.

CALL 'CBLTDLI' USING DLI-GU
                     PCB-NAME
                     IO-AREA
                     LIBRARY-SSA
                     BOOKS-SSA
                     ENGINEERING-SSA
                     IT-SSA

В приведенном выше примере показывает мы GU вызов, предоставляя полный набор квалифицированных SSA. Она включает в себя все ключевые поля от корневого уровня на этапе заседаний высокого уровня события, которое мы хотим получить.

GU вызов соображения

Если мы не предоставляем полный комплекс квалифицированных ССО в вызов, а затем DL/I функционирует следующим образом:

  • При использовании неоригинальных ССС в GU вызов, DL/I открывает первый этап вхождения в базе данных, что соответствует критериям.

  • Когда мы GU вызов без каких-либо адаптеров SSA, DL/I возвращает первое событие в корневой сегмент в базе данных.

  • Если некоторые SSA на промежуточном уровнях не упоминаются в вызов, а затем DL/I использует либо позицию или значение по умолчанию безусловное SSA для сегмента.

Коды состояния

В следующей таблице показаны соответствующие коды состояния после того, как GU вызова:

Код состояния Описание
Пробелы успешного вызова
GE DL/мне не удалось найти в сегмент, который отвечает критериям, указанным в

GN вызов

Основы GN вызова, следующим образом:

  • GN вызов известен как получить следующего вызова. Он используется для механической обработки.

  • В исходное положение указателя в базе данных до корневой части первой записи базы данных.

  • В базе данных положении указателя - до следующего этапа вхождения в последовательности, после успешного завершения GN вызова.

  • Компрессор GN вызова начинается с помощью базы данных, из позиции, предыдущий вызов.

  • Если в GN вызов - это безусловное, она возвращает следующий сегмент событие в базе данных независимо от ее типа, в иерархической последовательности.

  • Если GN вызов включает SSA, а затем DL/I получает только те сегменты, в соответствии с требованиями указанных специальных соглашений об услугах.

CALL 'CBLTDLI' USING DLI-GN
                     PCB-NAME
                     IO-AREA
                     BOOKS-SSA

Приведенный выше пример показывает мы GN вызов предоставления в исходное положение для чтения записи последовательно. Он достает первое появление книг сегмента.

Коды состояния

В следующей таблице показаны соответствующие коды состояния после GN вызова:

Код состояния Описание
Пробелы успешного вызова
GE DL/мне не удалось найти в сегмент, который отвечает критериям, указанным в вызове.
Компрессоры с GA Безусловное GN вызов перемещается вверх на один уровень в базе данных иерархии, чтобы извлечь сегмента.
ГБ Конец база данных не будет достигнута, и сегмент не найдена.
GK Безусловное GN вызов пытается извлечь из сегмента в частности тип, кроме одной только извлекаются, но не остается на том же уровне иерархии.

Коды команд

Команда коды используются с призывает извлечь сегмент события. Различные коды команд используется с вызовы рассматриваются ниже.

F код команды

Примечание:

  • При F код команды не указан в вызов процессов первого сегмента.

  • F коды команд можно использовать, когда мы хотим процесс последовательно, и его можно использовать с GN вызовов и GNP вызовов.

  • Если мы указать F код команды на сезон "GU" вызов, он не имеет никакого значения, как GU вызовов получить первый сегмент событие по умолчанию.

L код команды

Примечание:

  • При L код команды не указан в вызов процессов последнего появления сегмента.

  • Л коды команд можно использовать, когда мы хотим процесс последовательно, и его можно использовать с GN вызовов и GNP вызовов.

D код команды

Примечание:

  • D команду код используется для выбора более чем одного сегмента событий с помощью только одного вызова.

  • Обычно DL/I работает на самом низком уровне в SSA, но во многих случаях, мы хотим данных из других уровнях, а также. В этих случаях мы можем использовать D код команды.

  • D код команды облегчает поиск весь путь сегментов.

C код команды

Примечание:

  • C помощью команды код используется для конкатенирования ключи.

  • С помощью операторов отношения немного сложным, как это нам необходимо указать имя поля, оператор отношения, и значение для поиска. Вместо этого, мы можем использовать C код команды для создания каскадных ключ.

В следующем примере показано, как использовать C код команды:

01 LOCATION-SSA.
   05 FILLER		     PIC X(11) VALUE ‘INLOCSEG*C(‘.
   05 LIBRARY-SSA      PIC X(5).
   05 BOOKS-SSA        PIC X(4).
   05 ENGINEERING-SSA  PIC X(6).
   05 IT-SSA           PIC X(3)
   05 FILLER		     PIC X	VALUE ‘)’.

CALL 'CBLTDLI' USING DLI-GU
                     PCB-NAME
                     IO-AREA
                     LOCATION-SSA

P код команды

Примечание:

  • Когда мы сезон "GU" или GN вызов, DL/I устанавливает его родителях на самом низком уровне сегмент, который извлекается.

  • Если мы будем включать a P код команды, а затем DL/I устанавливает его родителях на более высоком уровне в иерархической путь.

U код команды

Примечание:

  • При U код команды указан в безусловное ССС в GN вызов, DL/I ограничивает поиск для сегмента.

  • U код команды игнорируется, если она используется с квалифицированным ССС.

V код команды

Примечание:

  • V код команды работает аналогично U код команды, но не ограничивает поиск сегмента на определенном уровне и на всех уровнях выше в иерархии.

  • V код команды игнорируется при использовании с квалифицированным ССС.

Q код команды

Примечание:

  • Q код команды используется, чтобы поставить в очередь или резервный сегмент для эксклюзивного использования вашего приложения.

  • Q код команды используется в интерактивной среды, где еще одна программа может внести изменения в сегменте.

Несколько

Программа может иметь несколько позиций в IMS базы данных, которая известна как несколько обработки. Несколько обработка может быть сделано двумя способами:

  • Несколько ПХД
  • Несколько позиционирование

Несколько ПХД

Несколько ПХД может быть определена в единой базе данных. Если имеется несколько ПХД, затем программа может иметь различные мнения. Этот метод для осуществления нескольких обработка - неэффективным, поскольку в накладные расходы, дополнительные ПХД.

Несколько позиционирование

В программе можно вести несколько позиций в базу данных с помощью одного КСП. Это достигается за счет поддержания особой позиции по каждой иерархической путь. Несколько установка используется для доступа к сегментам двух или более типов последовательно в то же время.

Advertisements