ITPUB??ì3
ITPUB论坛 » Rational » cqperl脚本执行报错,请帮忙看看,谢谢

标题: cqperl脚本执行报错,请帮忙看看,谢谢
离线 hanfeishu
中级会员



精华贴数 0
个人空间 0
技术积分 4108 (350)
社区积分 0 (1285788)
注册日期 2007-2-28
论坛徽章:19
开发板块每日发贴之星生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠
生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠

发表于 2008-6-28 19:44 
cqperl脚本执行报错,请帮忙看看,谢谢

cqperl脚本执行报错,请帮忙看看,谢谢!
脚本实现简单的从cq defect表取出记录数据打印出来的功能。
脚本内容如下:
#!D:Rationalcqperl
use CQPerlExt;

#Start a Rational ClearQuest session
$sessionObj = CQSession::Build();
# 连接数据库
$sessionObj->UserLogon(admin,"","User","Sch");

#查询
# BuildQuery()中的参数是entitydef_name ,指一个record type的名字,即设定查询的记录类别
$qryDef = $sessionObj->BuildQuery("Defect");
$qryDef->BuildField("ucm_project");
$qryDef->BuildField("id");
$qryDef->BuildField("Headline");
$qryDef->BuildField("Owner");
#$qryDef->BuildField("reason");
$qryDef->BuildField("State");
$qryDef->BuildField("Submit_Date");

print "1$qryDef is $qryDef
";
# 结果集
$resultsetObj = $sessionObj->BuildResultSet($qryDef);
$resultsetObj->EnableRecordCount();
# 执行查询结果
$resultsetObj->Execute();
print "2$qryDef is $qryDef
";
print "$resultsetObj is $resultsetObj
";
        
while ($resultsetObj->GetRecordCount()>0 ){
        $resultsetObj->MoveNext();
        my $id = $resultsetObj->GetColumnValue(1);
        my $defectEntity = $sessionObj->GetEntity("Defect",$id);
        my $headline = $defectEntity->GetFieldValue("Headline")->GetValue();
        my $owner = $defectEntity->GetFieldValue("Owner")->GetValue();
        my $state= $defectEntity->GetFieldValue("State")->GetValue();
        my $submit_date= $defectEntity->GetFieldValue("Submit_Date")->GetValue();
        }
print "$id is $id
";
print "$defectEntity is $defectEntity
";
print "$headline is $headline
";
print "$owner is $owner
";
print "$state is $state
";
print "$submit_date is $submit_date
";
               
CQSession::Unbuild($sessionObj);

执行脚本cqperl excel.pl后,报错如下:
1$qryDef is CQQueryDef=HASH(0x190b1ac)
2$qryDef is CQQueryDef=HASH(0x190b1ac)
$resultsetObj is CQResultSet=HASH(0x190b314)
记录标识“Proj”未以已知数据库的名称开始。 at D:/Rational/Common/lib/perl5/5.8.6
/MSWin32-x86-multi-thread/CQPerlExt.pm line 43.

请大家帮忙看看问题在哪里哦,我刚学cq的api,好多不懂的,谢谢哦!


只看该作者    顶部
离线 smartpig
老会员



精华贴数 1
个人空间 160
技术积分 6249 (214)
社区积分 0 (1065276)
注册日期 2006-8-9
论坛徽章:33
会员2007贡献徽章开发板块每日发贴之星开发板块每日发贴之星开发板块每日发贴之星生肖徽章2007版:鼠生肖徽章2007版:鼠
生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠

发表于 2008-6-28 19:47 
谢谢yunshan的回复。
while确实是死循环了。
我把它改成
$count = $resultsetObj->GetRecordCount();
while($count>0){
      $resultsetObj->MoveNext();
     。。。。
$count--;
}
脚本还有一个地方错了,就是$qryDef->BuildField(id)必须放$qryDef = $sessionObj->BuildQuery("Defect");后面的第一行,这样后面的
my $id = $resultsetObj->GetColumnValue(1);
my $defectEntity = $sessionObj->GetEntity("Defect",$id);
才正确。否则脚本执行报错。


只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问