函数

使用以下函数参数和函数可构造基于函数的查询子句。

函数参数

函数参数如下所示:

attr_name
指定任何属性的名称,如 is_product 或 platform。
object_name
指定任何对象版本的对象引用格式:

name-version:type:instance (assuming version delimiter is ’-’)

name:version:type:instance

order_spec
指定搜索顺序。如果对 order_spec 使用值 depth,该值指示执行了深度优先搜索。使用 breadth 可指定宽度优先搜索。如果对 order_spec 使用值“none”,那么表示顺序不重要,可以按照任何顺序执行搜索。将使用最快的方法。

none | depth | breadth

privilege_name
指定许可权的名称,例如 readwrite
project_name
指定任何项目对象版本的名称:

project_name-version (assuming version delimiter is ’-’)

project_name:version

project_name-version:project:instance

project_name:version:project:instance

函数定义

查询函数如下所示:

baseline(’baselinename’)
查询具有指定基线名称的基线。在 DCM 初始化的数据库中,基线名称可以选择包含 DCM 数据库标识和 DCM 定界符前缀。如果未指定基线名称参数,那么它会查询所有基线。
baseline_tasks(’baselinename’)
查询指定基线中包含的任务。 在 DCM 初始化的数据库中,基线名称可以选择包含 DCM 数据库标识和 DCM 定界符前缀。此查询函数不能与其他查询子句或嵌套查询一起使用。
cr(’crid’)
查询具有指定变更请求标识的变更请求。在 DCM 初始化的数据库中,变更请求标识可以选择包含 DCM 数据库标识和 DCM 定界符前缀。如果未指定变更请求标识参数,那么它会查询所有变更请求。
folder(’folderid’)
查询具有指定文件夹标识的文件夹。在 DCM 初始化的数据库中,文件夹标识可以选择包含 DCM 数据库标识和 DCM 定界符前缀。如果未指定文件夹标识参数,那么它会查询所有文件夹。
has_attr(’attr_name’)
查询数据库中包含属性 attr_name(例如 is_productplatform)的所有对象版本。
has_child(’object_name’,’project_name’)
在数据库中查询 project_name 内包含 object_name 作为成员的所有目录对象版本。
has_member(’object_name’)
查询数据库中以指定对象版本作为成员的所有项目对象版本。
has_model(’object_name’)
查询数据库中将指定的模型对象版本用作其模型的所有对象版本。

例如,如果使用“基本模型”,那么此查询为 has_model(’base-1:model:base’)

has_no_relation()
查询满足以下条件的对象:被查询对象到其他某个对象没有名为 relation 的关系。例如,要查询没有任何关联对象的任务,可以执行以下命令:

ccm query "cvtype='task' and has_no_associated_cv()"

has_predecessor(’object_name’)
在数据库中查询将指定对象版本作为直接先行作业的所有对象版本。
has_priv(’privilege_name’)
在数据库中查询与特权的指定名称(如 readwrite)匹配的对象。
has_purpose(’purpose’)
查询其 member_status 与指定用途匹配的对象。
has_relationship(’object_name’)
查询数据库中关系类型为 relationship 而名称为 object_name 的所有对象版本。

relationship 可以是任何已建立的关系,例如 associated_cvassociated_task

has_relationship(’object_name’,’operator’,time)
在数据库中查询满足以下条件的所有对象:被查询对象到指定对象具有指定关系,该指定对象的关系创建时间与指定运算符(即 =、!=、>、<=、> 或 >=)和时间值匹配。

relationship 可以是任何已建立的关系,例如 associated_cvassociated_task

is_relationship(’objectspec’, ’operator’, time)has_relationship_of(’objectspec’, ’operator’, time) 的逆向查询。

has_type(’type_name’)
查询数据库中类型为 type_name 的所有对象版本。例如,查询 has_type(’csrc-1:cvtype:base’) 可能会找到 HelloWorld-1:csrc:1
hierarchy_project_members(’project_name’, order_spec)
在数据库中查询 project_name 指定的项目层次结构的所有项目。order_spec 参数指定搜索顺序,如 recursive_is_member_of 中所述。

查询返回对象版本名称已排序的列表。将此查询与其他查询一起使用可以更改结果的顺序。

此查询会返回 project_name

is_available_task_of_release(’task_release’, ’baseline_release’, ’baseline_purpose’)
针对不在与指定基线发布标识和用途匹配的最新基线中的指定任务发布标识,查询已完成的任务。
is_bound()
查询数据库中属于任何数据库的对象版本。此函数最好是在指定其他限制选项(如项目名称)时使用。
is_child_of(’object_name’,’project_name’)
在数据库中查询作为项目 project_name 中目录或项目 object_name 的成员的所有对象版本。
is_cr_of_baseline(’baseline_id’)
查询指定基线中的变更请求。 这些变更请求是与基线中对象或其前趋对象关联的任务的关联变更请求。
is_missing_cr_of_baseline(’baseline_id’,’release_name’)
查询具有指定发布标识且不在指定基线中的变更请求。
is_missing_cr_of_release(’release_name’)
针对指定的发布标识,查询不与该发布标识的任何任务关联的变更请求。
is_unique_cr_of_baseline(’baseline_id’,’reference_baseline_id’)
查询在与参考基线比较时对于某个基线唯一的变更请求。
is_hist_leaf()
在数据库中查询作为历史记录中的叶节点的对象(例如,查询没有后继对象的对象)。
is_hist_root()
在数据库中查询作为历史记录中的根节点的对象(例如,查询没有前趋对象的对象)。
is_member_of(’project_name’)
查询数据库中为指定项目的成员的所有对象版本。
is_model_of(’object_name’)
查询数据库中与指定对象版本关联的模型对象版本。
is_no_relation()
查询满足以下条件的对象:从其他某个对象到被查询对象没有名为 relation 的关系。例如,查询类型为 ascii 且不与任何任务关联的对象:

ccm query "cvtype='ascii' and is_no_associated_cv()"

is_predecessor_of(’object_name’)
在数据库中查询为指定对象版本的直接先行作业的所有对象版本。
is_relationship_of(’object_name’)
在数据库中查询与 object_name 对象具有类型为 relationship 的关系的所有对象版本。

has_relationship(’object_name’) 函数是 is_relationship_of(’object_name’) 的逆向查询。

is_relationship_of(’object_name’, ’operator’, time)
查询满足以下条件的所有对象:从指定对象到被查询对象具有指定关系,该指定对象的关系创建时间与指定运算符(即 =、!=、>、<=、> 或 >=)和时间值匹配。

例如:

is_associated_cv_of(’task23-1:taks:M’, ’>’, time(’1 May 2010’))

此查询会查找在 2010 年 5 月 1 日后关联到任务 M#23 的所有关联对象。

has_relationship(’objectspec’, ’operator’, time) 函数是 is_relationship_of(’objectspec’, ’operator’, time) 的逆向查询。

有关创建关系的信息,请参阅 relate 命令

is_type_of(’object_name’)
查询模型中用于创建 object_nametype 对象版本。
latest_baseline_tasks(’release’,’purpose’)
在数据库中查询具有指定 releasepurpose 的最新创建的基线中所包含任务。 purposeAny 表示与任何用途都匹配。此查询函数不能与其他查询子句或嵌套查询一起使用。
latest_baseline_tasks_db(’dbid’,’release’,’purpose’)
在数据库中查询指定数据库中具有指定 releasepurpose 的最新创建的基线中所包含任务。 purposeAny 表示与任何用途都匹配。此查询函数不能与其他查询子句或嵌套查询一起使用。
recursive_has_relation(’object_name’, inclusive)
在数据库中查询满足以下条件的所有对象版本:被查询对象版本到 object_name 对象具有类型为 relationship 的关系,通过每个此类对象进行递归。

inclusive 参数为布尔值 TRUE 或 FALSE。值 TRUE 表示在结果中包含由 object_name 指定的对象。

recursive_is_member_of(’project_name’, order_spec)
在数据库中查询 project_name 指定的项目层次结构所有项目的成员。

该查询返回对象版本名称的列表,列表中首先出现所有非项目,后跟作为层次结构成员的项目。仅结果中的项目位置对搜索顺序至关重要。 将此查询与其他查询一起使用可以更改结果的顺序。

此查询不会返回 project_name

recursive_is_relation_of(’object_name’, inclusive)
在数据库中查询满足以下条件的所有对象版本:从 object_name 对象到被查询对象版本具有类型为 relationship 的关系,通过每个此类对象进行递归。

inclusive 参数为布尔值 TRUE 或 FALSE。值 TRUE 表示在结果中包含由 object_name 指定的对象。

例如,"recursive_is_predecessor_of(’example.txt-1:ascii:1’, FALSE)" 查找 example.txt-1:ascii:1 的回溯到历史记录根节点的所有递归前趋对象。

task(’taskid’)
查询具有指定任务标识的任务。在 DCM 初始化的数据库中,任务标识可以选择包含 DCM 数据库标识和 DCM 定界符前缀。如果未指定任务标识参数,那么它会查询所有任务。

反馈