数据库后端修改CQ字段长度问题
 

2009-12-18 作者:thehenry 来源:thehenry札记

 

[ClearQuest CQ]
[CQ字段长度限制]

问题:

在开始设计记录类型时设置字段xq_name的最大长度为50,但是在试运行过程中发现该字段长度太短。但是已经不能通过CQ designer修改字段的长度,又不愿意重新创建字段,所以决定从数据库端修改,详细信息如下:

字段信息

记录类型 “任务单”的字段 “名称”保存文本信息。

一、 改动过的内容

a) 修改MASTR中该字段的最大长度设置

select * from m_fielddef where db_name = 'xq_name'查找该字段对应的记录。

将MAX_LENGTH的值由 50 修改为 256

b) 修改test用户数据库中该字段的最大长度设置

select * from fielddef where db_name = 'xq_name'

将MAX_LENGTH的值由 50 修改为 256

c) 修改product用户数据库中该字段的最大长度设置

select * from fielddef where db_name = 'xq_name'

将MAX_LENGTH由 50 修改为 256

d) a、b、c步骤操作完,发现不能生效,就进入CQ designer中做简单的更改(如:挪动一个文本框的位置),然后测试工作,升级产品数据库,成功生效。
注:产品库版本由 255 升级到了 256

e) 再次进入CQ Designer test work时出现下面的错误提示信息,无法 test work ,再次重复 a、b、c步骤将MAX_LENGTH由256改为 250,仍然出现同样的错误信息。

并且再也无法重新检出 255 版本并进行修改。

二、 提示出错信息

a) 在查看“名称”字段的属性时提示如下错误信息

b) 点击“测试工作”时提示如下错误信息:

经过多日摸索,终于解决此问题。步骤如下:

查找该记录类型在MASTR库中的定义

select * from m_entitydef where id = 16777235;

将该字段的最大长度定义为小于256的值

update m_fielddef set max_length = 250 where db_name = 'headline' and entitydef_id = 16777235;

查找schema  dbid

select * from master_schemas;

得到以下信息:

统一开发管理平台

master_dbid 16788659

将该schema是否检出标志设置为1(未检出)/原值为2(已检出)

update master_schemas set status = 1 where master_dbid = 16788659;

检查在MASTR库中该schema的最大检出时的版本(即版本 256)

select * from master_schemarevs where schema_dbid = 16788659;

备份 master_schemarevs 表中的数据

create table master_schemarevs_bak as (select * from master_schemarevs);

检查备份结果:

select * from master_schemarevs_bak where schema_dbid = 16788659;

检查模式库版本表中的记录,确定要删除的数据

select * from master_schemarevs where schema_dbid = 16788659 and master_dbid = 16788669;

删除该行数据

delete from master_schemarevs where schema_dbid = 16788659 and master_dbid = 16788669;

现在重新启动CQ Designer,重新检出版本 255,一切OK

火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。

资源网站: UML软件工程组织