QTP编程描述查询数据表中数据集出错.(已解决)
我用QTP手工编写了数据库连接,并且测试通过,但是当查询语句中没有查询到数据时就会报错,如下面:蓝色的部分执行正常,红色部分却报异常。哪位大侠给帮忙看下。Dim count1,a
'设置数据库连接
set cnn=createobject("adodb.connection")
set objrsa=createobject("adodb.recordset")
cnn.open "Provider=OraOLEDB.Oracle.1;Password=XXX;Persist Security Info=True;User ID=XXX;Data Source=XXXX"
'判断数据库连接是否成功
If cnn.State=0 Then
Reporter.ReportEvent micFail, "testing", "连接数据库失败"
msgbox("fail")
else
Reporter.ReportEvent micPass, "testing", "连接数据库成功"
msgbox("pass")
End If
'查询条件
objrsa.open "select pwd from TABLE1 where pwd='"&cardPwd&"'",cnn,3,2
'打印查询语句(打印语句显示正常)
msgbox("sss===select pwd from TABLE1 where pwd='"&cardPwd&"'")
'得到字段pwd的值赋值给了对象a(当数据集a中没有查询到数据时报错。如下图BOFand EOF.JPG)
a=objrsa("pwd")
'判断手机号码是否为空,若为空,则继续执行否则退出(当数据集a中没有查询到数据时提示缺少对象)
If a is nothing Then
msgbox("手机号为空")
Browser("...").Page("...").WebButton("下一步").Click
Browser("...").Page("...").WebCheckBox("check").Set "ON"
Browser("...").Page("...").WebButton("确 定").Click
Browser("...").Page("...").WebButton("返回").Click
else
msgbox("该密码已经被使用或者不应该执行本步骤")
Exittest
end if
[ 本帖最后由 centurystone 于 2008-8-1 17:17 编辑 ] 你也知道是由于数据集没有记录造成的
那先判断是否有记录,再进行赋值阿
回复 2# 的帖子
试过了,把If a is nothing Then换成
If objrsa("pwd") is nothing Then后
运行时直接跳过执行else语句了 这个is nothing比较怪
通常我用这些:
指针是否在最后一条记录之后
If not objrsa.eof then
看某个字段是否为空
if a = "" then
试试这样行不行:
If not objrsa.eof then
a=objrsa("pwd")
if a = "" then
...
...
...
else
...
...
end if
end if 呵呵,多谢没有蛀牙,已经OK了:victory:
If not objrsa.eofThen
'得到字段card_pswd的值赋值给了对象objcard_pswd
objcard_pswd=objrsa("card_pswd")
msgbox("数据表中已存在该数据,不允许执行充值操作")
。。。。。
else
msgbox("数据表中无数据,允许执行充值操作")
。。。。。
End If
页:
[1]