I seguenti frammenti di codice illustrano come creare query che prelevano i record dal database utilizzando criteri relativi a difetti e utenti. Gli esempi utilizzando gli oggetti QueryDef e QueryFilterNode, nonché una query SQL (Structured Query Language).
Il seguente esempio seleziona tutti i difetti che appartengono al record di tipo defect.
set session = GetSession set querydef = session.BuildQuery("defect") querydef.BuildField("id") querydef.BuildField("headline") set resultset = session.BuildResultSet(querydef)
Questo esempio seleziona i difetti che corrispondono ai criteri riportati di seguito:
(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)
Questo esempio seleziona i difetti che corrispondono ai criteri riportati di seguito:
((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 states 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);
Il seguente esempio individua gli utenti in un gruppo determinato (ingegneria del 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)
Il seguente esempio individua le impostazioni predefinite quando un utente, John Doe (johndoe) inoltra un record. In questo esempio, alcuni valori campo si trovano in una tabella database denominata defect (per il record di tipo defect). Questo codice crea una query SQL.
set session = GetSession set resultset = session.BuildSQLQuery("select project, component,_ severity from defect where user='johndoe'")