centurystone 发表于 2008-8-26 09:20:09

如何从数据集中依次取出所有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 "Provider=OraOLEDB.Oracle.1;Password=***;Persist 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:13

问题太简单吗:o
怎么没人理啊

陈能技 发表于 2008-8-26 10:55:01

参考这个吧:
http://blog.csdn.net/Testing_is_believing/archive/2008/07/07/2623162.aspx

centurystone 发表于 2008-8-26 11:25:01

回复 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:18

不用谢。
多谢你的花:lol

推荐我写的书《QTP自动化测试实践》。
页: [1]
查看完整版本: 如何从数据集中依次取出所有element(已解决)