51Testing软件测试论坛

标题: 如何从数据集中依次取出所有element(已解决) [打印本页]

作者: centurystone    时间: 2008-8-26 09:20
标题: 如何从数据集中依次取出所有element(已解决)
在QTP中查询数据库取得两个字段N行数据,那么如何将这个数据集对象中两个字段中每条数据都读出来呢?
程序如下:
'如何从数据集中读取第一个字段的每行数据?

Dim itemData,result
'将返回的数据集对象赋值给result
Set result = QueryDatabase(tablename,fieldname1,fieldname2,fieldname3,network)
'下面如何将result中的每行数据依次打印出来?


'被调用程序
public Function QueryDatabase(byref tablename,byref fieldname1,byref fieldname2,byref fieldname3,byref network)
  On error resume next
  Dim cnn,objrsa,sql
           Set cnn=createobject("adodb.connection")
        Set objrsa=createobject("adodb.recordset")
    cnn.open "rovider=OraOLEDB.Oracle.1assword=***ersist Security Info=True;User ID=***;Data Source=database"
        If cnn.State=0 then
                cnn.close
                Set cnn=nothing
                Call WriteMsg(logFileNow,"连接数据库失败")
        Else
                Call WriteMsg(logFileNow,"连接数据库成功")
        End If
'执行查询语句
    sql="select "&fieldname1&","&fieldname2&" from "&tablename&"  where "&fieldname3&" like '%"&network&"'"
    objrsa.open sql ,cnn,3,2
   '将结果集对象返回调用者
    Set QueryDatabase = objrsa
    If err<>0 Then
                cnn.close
                Set cnn=nothing
                Call WriteMsg(logFileNow,"获得数据库数据时发生异常")
        End If
                cnn.close
                Set cnn=nothing
End Function

[ 本帖最后由 centurystone 于 2008-8-26 11:29 编辑 ]
作者: centurystone    时间: 2008-8-26 10:30
问题太简单吗
怎么没人理啊
作者: 陈能技    时间: 2008-8-26 10:55
参考这个吧:
http://blog.csdn.net/Testing_is_ ... /07/07/2623162.aspx
作者: centurystone    时间: 2008-8-26 11:25
标题: 回复 3# 的帖子
呵呵,多谢陈。按你说的方法已经解决了
解决方法如下:
Dim itemData,result
Set result = QueryDatabase(tablename,fieldname1,fieldname2,fieldname3,network)
'指向第一条记录
result.MoveFirst   
While not result.eof
 msgbox(result.Fields(fieldname1).value&","&result.Fields(fieldname2).value)
 '移动到下一条记录
 result.Movenext
Wend
作者: 陈能技    时间: 2008-8-26 15:33
不用谢。
多谢你的花

推荐我写的书《QTP自动化测试实践》。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2