Instruction SELECT pour les requêtes de données
Vous pouvez utiliser diverses instructions SELECT pour rechercher des informations. Les instructions peuvent être des instructions de base ou elles peuvent être plus restrictives pour affiner le jeu de résultats retourné par la requête.
L’exemple suivant est une instruction SELECT de base utilisée pour rechercher des données.
SELECT * FROM Class
Cette instruction retourne des instances de la classe spécifiée et de l’une de ses sous-classes. Toutes les propriétés système et définies par l’utilisateur pour les classes sont incluses. Si une propriété système n’est pas pertinente pour une requête particulière, elle contient NULL .
Vous pouvez utiliser plusieurs techniques pour réduire la bande passante requise pour récupérer le jeu de résultats, si l’exécution de la requête entraîne une surcharge excessive et que l’utilisateur n’est intéressé que par un sous-ensemble des propriétés. Tout d’abord, les requêtes peuvent remplacer l’astérisque par les propriétés souhaitées.
L’exemple suivant montre comment interroger des propriétés spécifiques.
SELECT property_1, property_2, property_3 FROM class
Le jeu de résultats inclut toutes les propriétés système et les propriétés non système spécifiées.
Une autre technique pour affiner l’étendue du jeu de résultats d’une requête consiste à utiliser la propriété système __CLASS. Les requêtes retournent par défaut toutes les instances de la classe spécifiée et de ses sous-classes. Vous pouvez utiliser la propriété système __CLASS pour demander uniquement des instances de la classe spécifiée, à l’exclusion de ses sous-classes.
L’exemple suivant montre comment utiliser la propriété système __CLASS dans une clause WHERE.
SELECT * FROM Device WHERE __CLASS = "Device"
Vous pouvez également utiliser la propriété système __CLASS pour restreindre le jeu de résultats aux instances de sous-classes particulières.
L’exemple suivant montre comment restreindre le jeu de résultats aux instances de sous-classes particulières.
SELECT * FROM Device WHERE __CLASS = "Modem" OR __CLASS = "Keyboard"
Note
Si vous construisez une requête avec un chemin d’accès non valide pour un objet incorporé, votre requête ne retourne pas d’erreur ni de résultats.
L’exemple suivant retourne une instance de MainClass, en supposant qu’une instance de MainClass existe contenant l’objet incorporé EmbedObj avec une propriété P_Uint32 égale à « 70011 ».
SELECT * FROM MainClass WHERE EmbedObj.P_Uint32 = 70011
L’exemple suivant ne renvoie aucun résultat et ne retourne pas d’erreur, en supposant que l’objet incorporé EmbedObj dans l’instance de MainClass n’a pas de propriété non valide.
SELECT * FROM MainClass WHERE StrongEmbedObj.INVALID = 70011