51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2485|回复: 5
打印 上一主题 下一主题

[原创] qtp 数据库查询结果如何传给参数

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-12-16 17:10:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
写了一段脚本,将其中一个对象参数化,
'链接数据库
'建立空的记录集
Set rs=createobject("adodb.recordset")
'设置SQL语句
sql="select select code from table1
打开记录集
rs.open sql,conn
-----这段不知道怎么写
Browser("Aent").Page("A").Frame("Frame_2").WebEdit("code").Set Parameter("rcode")
现在我想实现把这个查询结果中的code 赋值给参数rcode,也就是说,这个对象的参数值取自查询结果值

不知道该如何实现,请各位大侠帮帮忙

[ 本帖最后由 zxyyaml 于 2009-12-16 17:16 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-12-16 21:10:08 | 只看该作者
我知道的有两种方法可以实现这个:
1).利用Datatable传递参数
2).利用Environment.value 传递
具体实践看看help文件吧,呵呵
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2009-12-17 00:03:13 | 只看该作者
这个是qtp最基本的操作之一:
步骤如下,
1)建立1个大database output
2)控件.set DataTable("database_output_text").Value

也可以用vbs写数据库查询,直接就是一个赋值,跟你的方法没有任何差别。
   Dim sConnect
   sConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Databases\xxxxx.mdb"
   sSql = "select ...."
   Set rs = CreateObject("ADODB.Recordset")
   rs.Open "Contacts", sConnect, adOpenDynamic, adLockOptimistic, adCmdTable
   sTemp = rs.Field("your Field")
   rs.close
controlxxx.set sTemp
   set rs = nothing
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2009-12-17 12:46:54 | 只看该作者
谢谢各位,问题已解决
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2009-12-17 14:42:09 | 只看该作者
Dim i
i=0
Set con=createobject("adodb.connection")
conset="DSN=sa;UID=systemWD=password;DBQ=ORA10G ;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=F;BAM=IfAllSuccessful;NUM=NLS;DPM=F;MTS=T;MDI=F;CSR=F;FWC=F;FBS=64000;TLO=0;"
con.Open conset
If con.State=0 Then
        msgbox "Failed"
else
   msgbox "ass"
End If
Set rs=createobject("adodb.recordset")
sql="select ip_addr  from sa_omp.主机"
rs.Open sql,con
rs.MoveNext
datatable.AddSheet("SQL RecordSet").AddParameter "IP_ADDR",""
Do until rs.eof
datatable.SetCurrentRow(i+1)
datatable.value("IP_ADDR","SQL RecordSet")=rs("ip_addr")
rs.MoveNext
i=i+1
Loop
con.close
Set con=nothing
rows=datatable.GetSheet("SQL RecordSet").GetRowCount
For i=1 to rows
        a=datatable.value("IP_ADDR","SQL RecordSet")
'        msgbox a
        datatable.GetSheet("SQL RecordSet").SetNextRow
Next
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2009-12-17 14:43:09 | 只看该作者

以oracle为例子

地地道道地地道道
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-10-6 22:20 , Processed in 0.087148 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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