Los fragmentos de código siguientes muestran cómo compilar consultas que obtienen registros de la base de datos utilizando criterios sobre defectos y usuarios. En los ejemplos se utilizan los objetos QueryDef y QueryFilterNode, así como una consulta SQL (Lenguaje de consulta estructurada).
En el ejemplo siguiente se seleccionan todos los defectos que pertenecen al tipo de registro defect.
set session = GetSession set querydef = session.BuildQuery("defect") querydef.BuildField("id") querydef.BuildField("headline") set resultset = session.BuildResultSet(querydef)
En el ejemplo siguiente se seleccionan defectos que coinciden con estos criterios:
(assigned_to = "johndoe") AND (planned_release = "beta2")
set session = GetSession set querydef = session.BuildQuery("defect") querydef.BuildField("id") querydef.BuildField("headline") set operator = querydef.BuildFilterOperator(AD_BOOL_OP_AND) operator.BuildFilter "assigned_to", AD_COMP_OP_EQ, "johndoe" operator.BuildFilter "planned_release", AD_COMP_OP_EQ, "beta2" set resultset = session.BuildResultSet(querydef)
En el ejemplo siguiente se seleccionan defectos que coinciden con estos criterios:
((planned_release = "beta") AND (state != resolved OR verified) AND (priority = 1 OR 2)) OR (assigned_to = lihong OR gonzales OR nougareau OR akamoto)
set session = GetSession Dim users ReDim users(3) ' This sets up an array of four elements users(0) = "lihong" users(1) = "gonzales" users(2) = "nougareau" users(3) = "akamoto" Dim priority_levels ReDim priority_levels(1) ' This sets up an array of two elements priority_levels(0) = "1" priority_levels(1) = "2" Dim atates ReDim states(1) states(0) = "resolved" states(1) = "verified" set querydef = session.BuildQuery("defect") querydef.BuildField("id") querydef.BuildField("component") querydef.BuildField("priority") querydef.BuildField("assigned_to.login_name") querydef.BuildField("headline") set operator = querydef.BuildFilterOperator(AD_BOOL_OP_OR) set operator2 = operator.BuildFilterOperator(AD_BOOL_OP_AND) operator2.BuildFilter "planned_release", AD_COMP_OP_EQ, "beta" operator2.BuildFilter "state", AD_COMP_OP_NOT_IN, states operator2.BuildFilter "priority", AD_COMP_OP_IN, priority_levels operator.BuildFilter "assigned_to",AD_COMP_OP_IN, users set resultset = session.BuildResultSet(querydef)
# ((planned_release = "beta") AND (state != resolved OR verified) AND (priority = 1 OR 2)) # OR # (assigned_to = lihong OR gonzales OR nougareau OR akamoto) $session = $entity->GetSession(); @users = ("lihong", "gonzales", "nougareau", "akamoto"); @priority_levels = ("1", "2"); @states = ("resolved", "verified"); @planned_release = ("beta"); $querydef = $session->BuildQuery("defect"); $querydef->BuildField("id"); $querydef->BuildField("component"); $querydef->BuildField("priority"); $querydef->BuildField("headline"); $operator = $querydef->BuildFilterOperator($CQPerlExt::CQ_BOOL_OP_OR); $operator2 = $operator->BuildFilterOperator($CQPerlExt::CQ_BOOL_OP_AND); $operator2->BuildFilter ("planned_release", $CQPerlExt::CQ_COMP_OP_EQ, \@planned_release); $operator2->BuildFilter ("state", $CQPerlExt::CQ_COMP_OP_NOT_IN, \@states); $operator2->BuildFilter ("priority", $CQPerlExt::CQ_COMP_OP_IN, \@priority_levels); $operator->BuildFilter ("assigned_to",$CQPerlExt::CQ_COMP_OP_IN, \@users); $resultset = $session->BuildResultSet(querydef);
En el ejemplo siguiente se busca a los usuarios de un grupo determinado (ingeniería de software, sw_eng).
set session = GetSession set querydef = session.BuildQuery("users") querydef.BuildField("login_name") set operator = querydef.BuildFilterOperator(AD_BOOL_OP_AND) operator.BuildFilter "group.name", AD_COMP_OP_EQ, "sw_eng" set resultset = session.BuildResultSet(querydef)
En el ejemplo siguiente se buscan los valores predeterminados para cuando un usuario, John Doe (johndoe), envía un registro. En este ejemplo, algunos valores de campo están en una tabla de base de datos denominada defect (para el tipo de registro defect). Este código compila una consulta SQL.
set session = GetSession set resultset = session.BuildSQLQuery("select project, component,_ severity from defect where user='johndoe'")