|
对用户自定义的如‘修改日期’等、系统字段‘modified’,在使用过滤条件时要注意括号的使用
比如:
(>=2005-3-26) and (<=2005-4-25)
或
(>=2005-3-26) and <=2005-4-25
则过滤出来的是正确的
而用
>=2005-3-26 and <=2005-4-25
或
>=2005-3-26 and (<=2005-4-25)
则过滤出来的不正确 (会将4.25以后的记录也包括进来)
对系统字段 测试日期(detected on date)、关闭日期(closing date),则无论用上述4种中的哪一种格式来过滤都是正确的。
(TD的BUG表中,前者实际是varchar类型,后者实际是date类型)
(TD7.2中无此现象,对两者用4种格式过滤均可)
上面算是一个bug,还有一个是由td7.2升级到8.0引起的也涉及到过滤功能的bug:
TD可以用户自定义字段,故不少测试组都或多或少定义有此类字段,比如‘修改日期’什么的。
到TD的CUSTOMIZE中,可以自定义用户字段(user field),定义时,可以看到该字段的实际字段名称name(如‘BG_USER_02’之类的)、显示的名称label(如规定显示成‘修改日期’)、类型type(如规定为Date)
注:实际这些自定义字段的数据库类型都是varchar,在TD自定义中是为了方便某些使用起见才让用户将其规定成某一类型的,它与系统默认字段(system field)(如‘测试日期’)还是有区别的 (BUG_DETECTION_DATE(测试日期)这个字段的数据库类型确实是datetime的)
可以到SQLSERVER的企业管理器里,看一下TD库的BUG那张表,可以看到表里预留了不少供自定义的字段(诸如叫BG_USER_01的这些字段,其实际的数据类型以varchar为主(24个),也有6个int的)。
TD7.2的数据库中,是将自定义的date字段的数据 实际记录成如2004/04/01格式的(但在TD的界面中是显示成2004-4-1格式的),但TD7.6和8.0的数据库中是实际记录成2004-04-01格式的(但在TD的界面中还是显示成2004-4-1格式的)
TD升级前后对此的记录格式发生了变化,但升级时TD并没有将原格式自动转成新格式,
这样TD8.0就过滤不出原来格式的记录来了(它只能过滤出新格式的记录)。
只要将原格式中的/改成-,TD8.0就可以过滤原来的记录了。那怎样修改,不至于打开BUG表,手工一个个地修改吧?(有成千上万条呢 )
到SQL查询分析器,执行一条如下的类似语句即可:
update td.bug set bg_user_02=replace(bg_user_02,'/','-')
(注意语句中的自定义字段的实际名称bg_user_02,会因各测试组自定义字段的不同而异,自行替换即可) |
|