51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2425|回复: 4

[原创] QTP编程描述查询数据表中数据集出错.(已解决)

[复制链接]

该用户从未签到

发表于 2008-8-1 14:50:22 | 显示全部楼层 |阅读模式
我用QTP手工编写了数据库连接,并且测试通过,但是当查询语句中没有查询到数据时就会报错,如下面:蓝色的部分执行正常,红色部分却报异常。哪位大侠给帮忙看下。
Dim count1,a
'设置数据库连接
set cnn=createobject("adodb.connection")
set objrsa=createobject("adodb.recordset")
cnn.open "rovider=OraOLEDB.Oracle.1assword=XXXersist 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 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复

使用道具 举报

该用户从未签到

发表于 2008-8-1 14:58:42 | 显示全部楼层
你也知道是由于数据集没有记录造成的
那先判断是否有记录,再进行赋值阿
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2008-8-1 15:03:17 | 显示全部楼层

回复 2# 的帖子

试过了,
把If a is nothing Then换成
If objrsa("pwd") is nothing Then后
运行时直接跳过执行else语句了
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2008-8-1 15:27:13 | 显示全部楼层
这个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
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2008-8-1 17:17:28 | 显示全部楼层
呵呵,多谢没有蛀牙,已经OK了
If not objrsa.eof  Then
'得到字段card_pswd的值赋值给了对象objcard_pswd
    objcard_pswd=objrsa("card_pswd")
        msgbox("数据表中已存在该数据,不允许执行充值操作")
         。。。。。
else
        msgbox("数据表中无数据,允许执行充值操作")
                     。。。。。
End If
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-3-28 18:36 , Processed in 0.075306 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表