Инструкция REFERENCES OF
Инструкция REFERENCES OF извлекает все экземпляры ассоциации, которые ссылаются на конкретный исходный экземпляр. Оператор REFERENCES OF по синтаксису аналогичен оператору ASSOCIATORS OF. Однако вместо получения экземпляров конечных точек он извлекает промежуточные экземпляры связи.
Предложение REFERENCES OF WHERE может включать одно или несколько из следующих предопределенных ключевых слов и их значений:
REFERENCES OF {SourceObject} WHERE
ClassDefsOnly
RequiredQualifier = QualifierName
ResultClass = ClassName
Role = PropertyName
Чтобы указать исходный объект, используйте любой допустимый путь к объекту для SourceObject. Как и в случае с инструкцией SELECT, предложение WHERE является необязательным и используется для дальнейшего определения запроса. То есть следующее утверждение является вполне допустимым:
REFERENCES OF {Adapter="AHA-294X"}
Ключевое слово ClassDefsOnly указывает, что инструкция возвращает результирующий набор объектов определения класса, а не фактические экземпляры классов ассоциации. Эти объекты содержат определения классов, к которым принадлежат экземпляры, ссылающиеся на исходный объект. Например, следующая инструкция возвращает определения для классов AdapterDriver и AdapterProtocol :
REFERENCES OF {Adapter="AHA-294X"} WHERE ClassDefsOnly
Ключевое слово RequiredQualifier указывает, что возвращаемые объекты ассоциации должны включать указанный квалификатор. Ключевое слово RequiredQualifier можно использовать для включения определенных экземпляров связей в результирующий набор. Например, следующая инструкция возвращает экземпляры ассоциации, которые содержат квалификатор AdapterTag:
REFERENCES OF {Adapter="AHA-294X"} WHERE RequiredQualifier = AdapterTag
Ключевое слово ResultClass указывает, что возвращаемые объекты ассоциации должны принадлежать указанному классу или быть производными от него. Например, следующая инструкция возвращает связи класса AdapterDriver или подклассов AdapterDriver:
REFERENCES OF {Adapter="AHA-294X"} WHERE ResultClass = AdapterDriver
Ключевые слова ClassDefsOnly и ResultClass являются взаимоисключающими. Их совместное использование приводит к ошибке недопустимого запроса.
Ключевое слово Роли указывает, что возвращенные связи являются только теми, в которых исходный объект играет определенную роль. Роль определяется указанным свойством , ссылочным свойством типа ref. Роль ключевое слово полезна в ассоциациях, где один объект может играть одну роль в одних случаях, а другую — в других, например в иерархических связях. Ключевое слово Роли можно использовать для получения всех связей, в которых исходный объект играет роль родительского объекта, например. Следующая инструкция иллюстрирует синтаксис для получения ассоциаций, имеющих родительское свойство, ссылающееся на исходный объект в качестве родительского:
REFERENCES OF {Adapter="AHA-294X"} WHERE Role = parent
Примечание
Сложные запросы не могут использовать "And" или "Or" для разделения ключевых слов для операторов ASSOCIATORS OF и REFERENCES OF. Кроме того, знак равенства является единственным допустимым оператором, который можно использовать с ключевыми словами в этих запросах. Например, допустим следующий запрос:
"REFERENCES OF {Win32_NetworkAdapter.DeviceID="0"} " +
"WHERE resultclass = Win32_NetworkAdapterSetting " +
"requiredQualifier = Dynamic"
Примечание
Следующие примеры недопустимы. В первом примере не используется знак равенства, а во втором примере ошибочно предпринимается попытка использовать ключевое слово AND:
"REFERENCES OF {Win32_NetworkAdapter.DeviceID="0"} " +
"WHERE resultclass = Win32_NetworkAdapterSetting " +
"requiredQualifier <> Dynamic"
"REFERENCES OF {Win32_NetworkAdapter.DeviceID="0"} " +
"WHERE resultclass = Win32_NetworkAdapterSetting " +
"AND requiredQualifier = Dynamic"