さまざまな SELECT ステートメントを使用して、情報を照会できます。 ステートメントは、基本的なステートメントにすることも、クエリから返される結果セットを絞り込むために制限を厳しくすることもできます。
次の例は、データのクエリに使用される基本的な SELECT ステートメントです。
SELECT * FROM Class
このステートメントは、指定したクラスとそのサブクラスのインスタンスを返します。 クラスのすべてのシステムおよびユーザー定義プロパティが含まれます。 システム プロパティが特定のクエリに関連しない場合は、NULLが含まれます。
クエリの実行でオーバーヘッドが多すぎて、ユーザーがプロパティのサブセットのみに関心がある場合は、いくつかの手法を使用して、結果セットを取得するために必要な帯域幅を減らすことができます。 最初に、クエリでアスタリスクを目的のプロパティに置き換えることができます。
次の例は、特定のプロパティを照会する方法を示しています。
SELECT property_1, property_2, property_3 FROM class
結果セットには、すべてのシステム プロパティと指定した非システム プロパティが含まれます。
クエリの結果セットのスコープを絞り込むもう 1 つの手法は、__CLASS システム プロパティを使用することです。 既定では、クエリは、指定したクラスとそのサブクラスのすべてのインスタンスを返します。 __CLASS システム プロパティを使用すると、サブクラスを除き、指定したクラスのインスタンスのみを要求できます。
次の例は、WHERE 句で __CLASS システム プロパティを使用する方法を示しています。
SELECT * FROM Device WHERE __CLASS = "Device"
__CLASS システム プロパティを使用して、結果セットを特定のサブクラスのインスタンスに制限することもできます。
次の例は、結果セットを特定のサブクラスのインスタンスに制限する方法を示しています。
SELECT * FROM Device WHERE __CLASS = "Modem" OR __CLASS = "Keyboard"
手記
埋め込みオブジェクトの無効なパスを持つクエリを作成した場合、クエリはエラーや結果を返しません。
次の例では、"70011" と等しいプロパティ P_Uint32 を持つ EmbedObj 埋め込みオブジェクトを含む MainClass のインスタンスが存在すると仮定して、MainClassのインスタンスを返します。
SELECT * FROM MainClass WHERE EmbedObj.P_Uint32 = 70011
次の例では、MainClass のインスタンスで EmbedObj 埋め込みオブジェクトに INVALID プロパティがないと仮定して、結果が返されず、エラーが返されません。
SELECT * FROM MainClass WHERE StrongEmbedObj.INVALID = 70011