在QTP中,无法在与请求的名称或序号对应的集合中找到该项。

7
在某个场景下,我试图在QTP(更具体地说是使用VB脚本的QTP)中使用选择查询语句。但代码无法正常工作。
Option Explicit
Dim con,rs
Set con=createobject("adodb.connection")
Set rs=createobject("adodb.recordset")

con.open "Driver={Microsoft ODBC for Oracle};Server=myServer; Uid=USERNAME;Pwd=PASSWORD;"
rs.open "SELECT B.STATUS FROM STUDENT B WHERE B.BATCHCODE='FIRST' ",con

Do while not rs.eof
DataTable.GlobalSheet.AddParameter.RawValue = rs.fields("v1")
rs.movenext
Loop

Release objects
Set rs= nothing
Set con= nothing

请帮忙确定哪一部分代码导致了脚本结果失败。

问题出在查询语句还是 DataTable 中吗?你尝试使用 vbs 文件来确定问题是否与 UFT 相关了吗? - Motti
评论不清楚...您能详细说明吗?或者让我知道您需要我提供更多的信息。(我是UFT和VB脚本的新手) - Girish
什么出了问题?尝试隔离最小的不起作用的代码,然后查看它是UFT特定的还是您的VBS代码存在问题。您可以将代码放入.vbs文件中并执行以进行此操作。 - Motti
好的,我会尝试相同的操作并告诉您结果...提前感谢您 :) - Girish
好的...我已经尝试调试代码,问题始于以下行:con.open "Driver={Microsoft ODBC for Oracle};Server=myServersIPAddress; Uid=USERNAME;Pwd=PASSWORD;"此外,我已经为此添加了一个监视器,并发现变量con在错误选项卡中有2个对象。 - Girish
1个回答

17

"请求的名称对应的集合中找不到该项" - 当您尝试引用记录集中不存在的字段时会出现此错误!

rs 中将没有 "v1" 字段,仅有 "STATUS"。

  rs.fields("v1")
所以,应该是这样的。
rs.fields("STATUS")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接