Язык интерфейс данных (Data Language / I, DL / I, язык данных / Интерфейс, Data Language / One [1] ) является система языка , используемая для доступа к IBM «s IMS база данных , и система передачи данных.
Он реализуется с любого языка путем вызова программной заглушки DFSLI000. Эта заглушка имеет точки входа для работы с различными языками программирования, например, для вызова CBLTDLI из программы COBOL . Эта заглушка связана с вызывающей программой, передает запрос в систему IMS и возвращает результаты и код состояния.
В любой полнофункциональной базе данных IMS наименьший элемент, который можно извлечь, - это сегмент . Каждый сегмент состоит из полей , одно из которых, как правило, является ключевым полем. Сегменты иерархически расположены в базе данных, причем тип сегмента самого высокого уровня является корневым. 255 различных типов сегментов, до 15 уровней, разрешены в любой базе данных. База данных запись состоит из конкретных корневого сегмента и всех его зависимых сегментов детей - нет ограничений на количество сегментов в записи, или количество записей в базе данных (кроме физических ограничений дискового пространства).
Структура любой базы данных представляется прикладной программе в виде PCB (Program Communication Block), и это используется как один из параметров, передаваемых в заглушку. Другие типы печатных плат используются для отправки и получения сообщений обработки транзакций , доступа и записи на экран VDU пользователя , а также для печати отчетов и т. Д.
При доступе к сегменту базы данных прикладная программа также использует SSA (аргумент поиска сегмента) в качестве параметра, чтобы указать необходимый сегмент или сегменты. Обычно он содержит требуемый тип сегмента и содержимое любых ключевых полей.
Для всех языков, кроме PL / I , первым параметром в вызове является код функции - поле из четырех символов, например: « GU
» (получить уникальный), « GN
» (получить следующий), « REPL
» (заменить) и « ISRT
». (Вставлять). В PL / I из-за того, что этот язык не помечает последний параметр «1» в бите 0, первый параметр должен вместо этого быть полным словом (фиксированная ячейка (31)), содержащим количество следующих параметров.
Типичный вызов из программы COBOL может быть . Затем программа будет автоматически ждать, пока запрошенные данные будут извлечены и помещены в область сегмента. Код состояния, содержащийся на плате, будет обновлен либо пробелами (если все прошло хорошо), либо некоторым информационным кодом или кодом ошибки.CALL “CBLTDLI” USING GU, Stores-Database-PCB, Stores-Segment-Area, Stores-Root-SSA
Типичный вызов из программы PL / I может быть .CALL PLITDLI(FOUR, GU, Stores-Database-PCB, Stores-Segment-Area, Stores-Root-SSA);
Рекомендации
- ^ «Продукты и компоненты IBM z / VSE» . IBM . Проверено 27 июня 2009 .