Интерфейс языка данных
Язык данных один (язык данных/I, DL/I, язык данных/один, язык данных/один [ 1 ] ) — это языковая система, используемая для доступа к IBM базам IMS данных и ее системе передачи данных.
Он реализован на многих языках путем вызова программной заглушки DFSLI000. Эта заглушка имеет точки входа для работы с различными языками программирования, например, для вызова CBLTDLI из программы COBOL . Эта заглушка связана с вызывающей программой, передает запрос в систему IMS и возвращает результаты и код состояния.
В любой полнофункциональной базе данных IMS наименьший элемент, который можно получить, — это сегмент . Каждый сегмент состоит из полей , одно из которых обычно является ключевым полем. Сегменты расположены в базе данных иерархически, причем тип сегмента самого высокого уровня является корневым сегментом. В любой базе данных разрешено 255 различных типов сегментов на 15 уровнях. базы данных Запись состоит из определенного корневого сегмента и всех его зависимых дочерних сегментов — количество сегментов в записи или количество записей в базе данных не ограничено (кроме физических ограничений места для хранения).
Структура любой базы данных представляется прикладной программе в виде печатной платы (блока связи программы), и это используется как один из параметров, передаваемых в заглушку. Другие типы печатных плат используются для отправки и получения сообщений обработки транзакций пользователя , доступа и записи на экран дисплея , а также для печати отчетов и т. д.
При доступе к сегменту базы данных прикладная программа также использует SSA (аргумент поиска сегмента) в качестве параметра, чтобы указать сегмент или сегменты, которые ей нужны. Обычно он содержит требуемый тип сегмента и содержимое всех ключевых полей.
Для всех языков, кроме PL/I , первым параметром вызова является код функции — четырехзначное поле, примеры: « GU
(Получите уникальность), « GN
(Получить следующий), « REPL
(Заменить) и « ISRT
" (Вставлять). В PL/I, поскольку этот язык не помечает последний параметр цифрой «1» в бите 0, вместо этого первый параметр должен быть полным словом (Fixed Bin(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» . ИБМ . Архивировано из оригинала 21 марта 2006 года . Проверено 27 июня 2009 г.