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


Инструкция REFERENCES OF

Инструкция REFERENCES OF извлекает все экземпляры ассоциации, ссылающиеся на конкретный исходный экземпляр. Инструкция REFERENCES OF аналогична инструкции ASSOCIATOR OF в его синтаксисе. Однако вместо получения экземпляров конечных точек он извлекает промежуточные экземпляры ассоциации.

Предложение REFERENCES OF WHERE может включать одно или несколько следующих предопределенных ключевых слов и их значения:

REFERENCES OF {SourceObject} WHERE 
    ClassDefsOnly
    RequiredQualifier = QualifierName
    ResultClass = ClassName
    Role = PropertyName

Чтобы указать исходный объект, используйте любой допустимый путь к объекту SourceObject. Как и в инструкции SELECT, предложение WHERE является необязательным и используется для дальнейшего определения запроса. То есть, следующая инструкция является совершенно допустимой:

REFERENCES OF {Adapter="AHA-294X"}

Ключевое слово ClassDefsOnly указывает, что инструкция возвращает результирующий набор объектов определения класса, а не фактические экземпляры классов ассоциаций. Эти объекты содержат определения классов, к которым относятся экземпляры, ссылающиеся на исходный объект. Например, следующая инструкция возвращает определения для классов адаптера AdapterDrive r и 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" для разделения ключевых слов для инструкций ASSOCIATOR 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"