Блок выбора объекта из однородной совокупности объектов по заданному условию

Для выбора объекта из заданной совокупности объектов используется блок
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