51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

测试开发精英班,通向高级软件测试工程师论坛测试积点免费获取渠道攻略20+企业级实战项目就在这里!横扫BAT,Python全栈测试开发技能大全
【113期】:Web安全测试你来问我来答!中国软件测试行业现状调查报告新鲜出炉! 【杂志】做测试行业不偏科的尖子生! 【活动】为视频UP主打CALL,互动领福利!
查看: 1986|回复: 4

[原创] 从数据集中对比数据报错(已解决)

[复制链接]

该用户从未签到

发表于 2008-8-7 16:53:30 | 显示全部楼层 |阅读模式
通过sql查询语句查询出结果集并把值传给values1(只有一个数字),用msgbox()可以看到里面的数据为什么用这个数据和一个变量做比较时却提示我数据类型不匹配(红色部分)
Dim expectvalue
         expectvalue=1
        '执行查询语句
        objrsa.open "select count(*) from "&tablename&"  where "&fieldname&"= '"&fieldvalue&"'" ,cnn,3,2
        '比较查询结果与用例期望值是否相等
        If not objrsa.eof Then
        msgbox(objrsa("count(*)"))'显示结果为1
        values1=objrsa("count(*)").value
        If expectvalue=values1 Then
                msgbox("==1")
         else
                  msgbox("==0")
        end if解决

[ 本帖最后由 centurystone 于 2008-8-7 18:12 编辑 ]
回复

使用道具 举报

该用户从未签到

发表于 2008-8-7 17:25:17 | 显示全部楼层
那就就强制转换下数据类型试下
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2008-8-7 17:39:10 | 显示全部楼层
一个是对象,一个是整型数据,这种情况下不能直接进行比较,VBS也不会做类型的自动转换。

改为  If expectvalue=CInt(values1) Then  试试
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2008-8-7 17:43:41 | 显示全部楼层
expectvalue可能是String类型的
values1是Int类型的
试试CInt(expectvalue)=values1
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2008-8-7 18:09:19 | 显示全部楼层
多谢楼上几位指点,已经解决了。我用了一种比较笨的方法,楼上的方法我会去试下。不过转成字符型的我已经试过了,不通过。下面是我的思路:把对象的数据和变量全都放到Global中,取出来时自然就是同一种类型了。
   If not objrsa.eof Then
        '        存放到Global中
                        '获取Sheet表中数据
           Set Sheet = DataTable.GetSheet("Global")
                        '读取Global表中A,B两列数据
                Set Parameter1 = Sheet.GetParameter("A")
                Set Parameter2 = Sheet.GetParameter("B")
        '        将查询得到的实际记录数与预期记录数放入Global中等待对比
                Parameter1.Value= objrsa("count(*)")
                Parameter2.Value= expectvalue
        '        判断预期记录数是否与实际查询得到的记录数相同
                Select Case Parameter1=Parameter2
                        Case true
                                reporter.reportevent micpass,"返回结果码","1"
                        Case false
                                reporter.reportevent micpass,"返回结果码","0"
                        Case else
                                reporter.reportevent micpass,"返回结果码","-1,&":err.source,err.description&""
                End Select
        End if
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2020-7-16 21:38 , Processed in 0.073648 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2020 Comsenz Inc.

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