Поделиться через


Инструкция 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"