Instrução SELECT em consultas de dados
Você pode usar uma variedade de instruções SELECT para consultar informações. As instruções podem ser instruções básicas ou podem ser mais restritivas para restringir o conjunto de resultados retornado da consulta.
O exemplo a seguir é uma instrução SELECT básica usada para consultar dados.
SELECT * FROM Class
Essa instrução retorna instâncias da classe especificada e qualquer uma de suas subclasses. Todas as propriedades definidas pelo sistema e pelo usuário para as classes são incluídas. Se uma propriedade do sistema não for relevante para uma consulta específica, ela conterá NULL.
Você pode usar várias técnicas para reduzir a largura de banda necessária para recuperar o conjunto de resultados, se a execução da consulta resultar em muita sobrecarga e o usuário estiver interessado apenas em um subconjunto das propriedades. Primeiro, as consultas podem substituir o asterisco pelas propriedades desejadas.
O exemplo a seguir mostra como consultar propriedades específicas.
SELECT property_1, property_2, property_3 FROM class
O conjunto de resultados inclui todas as propriedades do sistema e as propriedades especificadas que não são do sistema.
Outra técnica para restringir o escopo do conjunto de resultados de uma consulta é usar a propriedade do sistema __CLASS. Por padrão, as consultas retornam todas as instâncias da classe especificada e suas subclasses. Você pode usar a propriedade do sistema __CLASS para solicitar apenas instâncias da classe especificada, excluindo suas subclasses.
O exemplo a seguir mostra como usar a propriedade do sistema __CLASS em uma cláusula WHERE.
SELECT * FROM Device WHERE __CLASS = "Device"
Você também pode usar a propriedade do sistema __CLASS para restringir o conjunto de resultados a instâncias de subclasses específicas.
O exemplo a seguir mostra como restringir o conjunto de resultados a instâncias de subclasses específicas.
SELECT * FROM Device WHERE __CLASS = "Modem" OR __CLASS = "Keyboard"
Observação
Se você construir uma consulta com um caminho inválido para um objeto inserido, sua consulta não retornará um erro nem nenhum resultado.
O exemplo a seguir retorna uma instância de MainClass, supondo que exista uma instância de MainClass contendo o objeto inserido EmbedObj com uma propriedade P_Uint32 igual a "70011".
SELECT * FROM MainClass WHERE EmbedObj.P_Uint32 = 70011
O exemplo a seguir não retorna nenhum resultado e não retorna um erro, supondo que o objeto inserido EmbedObj na instância de MainClass não tenha uma propriedade INVALID.
SELECT * FROM MainClass WHERE StrongEmbedObj.INVALID = 70011