脚本实现简单的从cq defect表取出
记录数据打印出来的
功能。
脚本内容如下:
#!D:\
Rational\cqperl
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\n";
# 结果集
$resultsetObj = $sessionObj->BuildResultSet($qryDef);
$resultsetObj->EnableRecordCount();
# 执行查询结果
$resultsetObj->Execute();
print "2\$qryDef is $qryDef\n";
print "\$resultsetObj is $resultsetObj\n";
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\n";
print "\$defectEntity is $defectEntity\n";
print "\$headline is $headline\n";
print "\$owner is $owner\n";
print "\$state is $state\n";
print "\$submit_date is $submit_date\n";
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,好多不懂的,谢谢哦!
[
本帖最后由 allm 于 2008-6-17 17:25 编辑 ]