ГОСТ Р ИСО 10303-22-2002
Данная команда наполняет существующий нефиксированный список, реализуя запрос через
источник. Источником может быть определен экземпляр агрегата, С ИДД-модель, экземпляр схемы
или хранилище. В случае, когда источником являются СИДД-модели, экземпляр схемы или храни
лище, источник определяет набор СИДД-моделей и для каждой С ИДД-модели из набора запрос
выполняется через entity_cxtent типа объекта, определенного влогическом выражении запроса. После
запроса результирующий агрегат будет содержать идентификаторы экземпляров тех объектов, для
которых вычисленное логическое выражение имеет значение TRUE. Если результирующий список
уже содержал идентификаторы каких-либо экземпляров объекта, они остаются в этом списке, а
новые результаты запроса добавляют в конец этого списка. В случае, когда синтаксис логического
выражения неверен, должны выдаваться ошибки VA_NVLD. OP_NVLD или AT_NVLD. определя
ющие соответствующие ошибки в значении, операторе или атрибуте. Если комбинации атрибута,
значения и оператора не обеспечиваются, должна выдаваться ошибка VT_NVLD.
Логическое выражение, определяющее критерий, по которому формируется результат, долж
но быть строкой вида VALUE OPERATOR entity{.attr_spee}.attr_xpec, где:
- attr_spec является определением имени атрибута в виде attrihute.name или entit.v_definition.name,
соединенным с attribute.name с разделением через точку (.) в случае, когда атрибуты с тем же
именем унаследованы из многих супертипов;
- {.attr_specj является пустым или содержащим несколько ссылок на объекты, значениям
которых присвоены имена соответствующих атрибутов;
- OPERATOR - это =, <=, >=, <, >, О ,IN, или LIKE;
- VALUE может быть ключевым словом UNSET или принимать значение, определенное в
таблице 1, где UNSET проверяет наличие или отсутствие значения атрибута.
Простые виды могут комбинироваться с помощью NOT. AND, OR и круглых скобок для
создания более сложных видов. Вычисление выражений в скобках определено в разделе 12 ГОСТ Р
ИСО 10303-11. Логические операторы AND. OR и NOT определены соответственно в 12.4.2, 12.4.3 и
12.4.1 ГОСТ Р ИСО 10303-11.
Значения операторов сравнения =, <=, >=, <, > и <> определены в 12.2.1 ГОСТ Р ИСО
10303-11 с ограничением, что они не могут применяться к значениям типов данных агрегат или
объект. Операторы сравнения экземпляров :=: и ;<>: определены в 12.2.2 ГОСТ Р ИСО 10303-II с
ограничением, что они могут применяться только к значениям типов данных объекта.
Функция оператора LIKE, алгоритм сопоставления и символы сопоставления определены в
12.2.5 ГОСТ Р ИСО 10303-11. за исключением того, что левый операнд должен быть сопоставляе
мой строкой, а правый — контрольной строкой.
Функция оператора IN определена в 12.2.3 ГОСТ Р ИСО 10303-11.
В случае, когда VALUE в логическом выражении яатяется литералом, формат этого литерала
определен в 7.5 ГОСТ Р ИСО 10303-11.
Т а б л и ц а 1—Представления атрибутов, содержащихся в Запросе
Представление атрибута
Значение оператора
(O PER A TO R »
Т и п ж а ч е и и я (V A LU E)
simplc_typc; dcfinedt.vpe. областью значения
которыхявляется simpte type
«
Л
J
V
*
А
у
Л
V
литерал в соответствующей обла
сти значений
л
в
а
л
с
о
т
ж
ь
е
з
н
н
н
а
ы
че
й
ни
a
я
gg
к
r
о
cg
т
a
о
t
р
io
ы
n
х
_t
в
y
ы
pc
ч
;
ис
d
л
c
я
fi
е
n
т
c
с
d
я
_t
д
y
л
p
я
c,
в
о
л
б
о
all
женного aggregalion_type
нс обеспечивается
к
en
о
t
т
i
о
ty
ры
in
х
st
в
a
ы
nc
ч
e
и
;
с
d
л
e
я
f
е
i
т
n
с
e
я
d
д
ty
л
p
я
e
c
,
n
о
t
б
it
л
y
а
i
с
n
т
s
ь
ta
з
n
н
c
ач
e
ения
:< > :
лексема «ENTITY*
d
ч
c
и
f
с
i
л
n
я
ed
ет
_
с
ty
я
p
д
e
л
.
я
об
e
л
n
а
u
с
m
т
c
ь
ra
з
t
н
io
ач
n
ен
ty
и
p
я
c
которого вы
- <-,
> - , < , > ,
О
строковыйлитерал
string_typc; dcfined_type, область значенияLIKE
которых вычисляется для string type
строковый литерал
a
к
g
о
g
т
r
о
e
р
g
ы
a
х
tio
в
n
ы
ty
ч
p
и
e
с
:
л
d
я
e
е
f
т
in
с
e
я
d
д
t
л
y
я
pe
a
,
g
о
g
б
r
л
eg
а
a
с
t
т
io
ь
n
зн
ty
а
p
ч
e
ения
IN
лексема «ENTITY* или литерал
соответствующей области значе
ний
47