Блок выбора объекта из однородной совокупности объектов по заданному условию
Для выбора объекта из заданной совокупности объектов используется блок
SELECT O A,B,C,D,E,F.
В поле операции блока с пробелом в одну позицию после идентификатора операции записывается условный или логический оператор. В операнде А указывается идентификатор параметра, в который записывается номер выбранного объекта. В операнде В указывается левый предел совокупности выбираемого объекта, а в операнде С – правый. Операнд D заполняется только в том случае, если оператор О – условный. В операнде Е указывается СЧА выбираемых объектов. В операнде F может быть указана метка, к которой направляется транзакт в случае, если ему не удалось найти ни одного объекта по заданному условию. В случае успешного поиска транзакт поступает к следующему блоку. В случае если поиск оказался неуспешным, а операнд F пустой, то транзакт также переходит к следующему блоку. Отметим, что идентификаторы объектов могут быть заданы только цифрами. Если они заданы буквенными именами, то производят переход к номерам с помощью команды NAME EQU А. В поле метки команды указывается имя объекта, а в операнде А присваиваемый объекту номер.
Блок SELECT можно использовать и для выбора памяти из однородной совокупности. В этом случае нужно учесть, что описание памятей можно производить только по их именам, а выбирать из них блоком SELECT можно только по номерам. Поэтому перед описанием памяти требуется обязательно установить соответствие между именами и номерами памяти.
Примеры использования описанных выше блоков приведены в таблице 1.12.
Таблица 1.12 Примеры использования операторов операционной категории
Пример использования оператора | Комментарии |
SELECT MIN VIBOR,1,8,,FR | Выбор устройства по наименьшему коэффициенту использования. В этом случае не может быть отказа. |
STORAGE_1 EQU 1 STORAGE_2 EQU 2 STORAGE_3 EQU 3 STORAGE_1 STORAGE 10 STORAGE_2 STORAGE 10 STORAGE_3 STORAGE 10 SELECT SNF 3, STORAGE_1,STORAGE_3,,,METKA_EXIT | Выбор незаполненной памяти. Если все памяти заполнены, то транзакт перейдет на метку METKA_EXIT |