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