Objeto QueryDef

Un objeto QueryDef define los parámetros de una consulta, que se utiliza para recuperar registros específicos de una base de datos.

Un objeto QueryDef contiene una expresión de consulta y una lista de campos de visualización. La expresión de consulta define los parámetros de búsqueda para la consulta y puede contener un conjunto de sentencias condicionales complejo. Para ejecutar la consulta, debe crear un objeto ResultSet y llamar al método Execute. (Puede utilizar el método BuildResultSet del objeto Session para crear el objeto ResultSet). El objeto ResultSet utiliza la lista de campos de visualización del objeto QueryDef para resumir los resultados de la consulta.

Para crear un objeto QueryDef:

  1. Llame al método BuildQuery del objeto Session. Los métodos BuildQuery devuelven un objeto QueryDef con campos de visualización y filtros no definidos.
  2. Añada los filtros y los campos para la consulta en el objeto QueryDef.

Para crear una consulta que devuelva todos los registros de un tipo determinado, cree un objeto QueryDef, pero no le añada filtros. En vez de ello, añada los campos a devolver mediante el método BuildField del objeto QueryDef.

Puede añadir filtros y nodos a un objeto QueryDef para crear consultas más complejas. Los nodos de un objeto QueryDef constan de uno o más objetos QueryFilterNode, donde cada uno contiene uno o más filtros. Los nodos agrupan todos los filtros con un único operador booleano. Puede utilizar el método BuildFilterOperator del objeto QueryDef para crear el nodo raíz de este árbol. A continuación, utilice los métodos de QueryFilterNode para definir los filtros y los nodos restantes. Los filtros en sí mismos pueden utilizar otros operadores de comparación para probar la relación de un campo con los datos especificados.

Por ejemplo, en la sentencia siguiente:

Select * from <some defect> where (....) AND1 ((...) OR2 ( (...) AND3( (...) OR4 (...))))

el operador es AND (AND1). Su operador de subnodo del nivel siguiente es un OR (OR2). La jerarquía completa es:

   AND1 (AND1 is the root operator)
   \
      OR2 (OR2 is suboperator of AND1)
       \
         AND3 (AND3 is suboperator of OR2)
         \
            OR4 (OR4 is suboperator of AND3) 
Nota: También puede construir una consulta a partir de una serie de consulta SQL sin formato utilizando el método BuildSQLQuery de Session. Sin embargo, esta técnica no crea un objeto QueryDef.

Para ver un ejemplo de cómo utilizar QueryDef, consulte Ejecución de una consulta que tiene filtros dinámicos.


Feedback