Инструкция SELECT для запросов к данным
Для запроса информации можно использовать различные инструкции SELECT. Инструкции могут быть базовыми или они могут быть более строгими, чтобы сузить результирующий набор, возвращаемый из запроса.
В следующем примере приведена базовая инструкция SELECT, используемая для запроса данных.
SELECT * FROM Class
Эта инструкция возвращает экземпляры указанного класса и любой из его подклассов. Включены все системные и пользовательские свойства для классов. Если системное свойство не относится к конкретному запросу, оно содержит NULL.
Вы можете использовать несколько методов для уменьшения пропускной способности, необходимой для получения результирующий набор, если выполнение запроса приводит к слишком большой нагрузке, и пользователь заинтересован только в подмножестве свойств. Во-первых, запросы могут заменить звездочку нужными свойствами.
В следующем примере показано, как запрашивать определенные свойства.
SELECT property_1, property_2, property_3 FROM class
Результирующий набор содержит все системные свойства и указанные несистемные свойства.
Другой способ сузить область результирующий набор запроса — использовать __CLASS системное свойство. Запросы по умолчанию возвращают все экземпляры указанного класса и его подклассы. Системное свойство __CLASS можно использовать для запроса только экземпляров указанного класса, за исключением его подклассов.
В следующем примере показано, как использовать __CLASS системное свойство в предложении WHERE.
SELECT * FROM Device WHERE __CLASS = "Device"
Можно также использовать системное свойство __CLASS, чтобы ограничить результирующий набор экземплярами определенных подклассов.
В следующем примере показано, как ограничить результирующий набор экземплярами определенных подклассов.
SELECT * FROM Device WHERE __CLASS = "Modem" OR __CLASS = "Keyboard"
Заметка
Если вы создаете запрос с недопустимым путем для внедренного объекта, запрос не возвращает ошибку или какие-либо результаты.
В следующем примере возвращается экземпляр MainClass, при условии, что экземпляр MainClass существует, содержащий внедренный объект EmbeddedObj со свойством P_Uint32 равным "70011".
SELECT * FROM MainClass WHERE EmbedObj.P_Uint32 = 70011
В следующем примере не возвращаются результаты и не возвращаются ошибки, предполагая, что внедренный объект EmbeddedObj в экземпляре MainClass не имеет свойства INVALID.
SELECT * FROM MainClass WHERE StrongEmbedObj.INVALID = 70011