51Testing软件测试论坛

标题: 关于查询数据库的讨论 [打印本页]

作者: xiaoan_2131    时间: 2008-9-16 10:47
标题: 关于查询数据库的讨论
Dim Cmd ,res,Conn
Set Conn = createobject("ADODB.Connection")
Conn.open="DRIVER=SQL Server;SERVER=D-pek-BYANG;UID=beyond.yang;APP=QuickTest Professional;WSID=D-PEK-BYANG;DATABASE=emsflow;Trusted_Connection=Yes"
Set Res=createobject("adodb.recordset")
Set Cmd=CreateObject("adodb.command")

Res.open"use emsflow  select username  FROM infoaget_hr_us_users",Conn,1,1

Dim username
MsgBox username=res("username").value

Set res=nothing

Set Conn=nothing
首先去链接数据库,然后进行查询,我怎么样把查询的结果放到DataTable中,还有怎样和手动查询的数据进行比较呢?
作者: 厍仕杰    时间: 2008-9-16 11:30
用数组
作者: 兰兰    时间: 2008-9-16 11:54
关注中,楼上的可以说的详细一些吗?
作者: nanice    时间: 2008-9-16 12:53
实现这个问题我经常用的方法有:1.用数组,把每次取的数据放入数组中,然后再去比。
2.写入一个excel文件,然后读取出来再去比。
当然,如果你是想把数据库中的数据和页面展现的数据比较的话,那还得获取页面的数据,这个一般实现起来难度不大。
作者: ziqiuwendan    时间: 2008-9-16 14:27
同样关注这个问题。有没有更详细的解答呀?
作者: xiaoan_2131    时间: 2008-9-16 16:09
实现这个问题我经常用的方法有:1.用数组,把每次取的数据放入数组中,然后再去比。
2.写入一个excel文件,然后读取出来再去比。
大哥,听起来思路有点门儿了,但是其中用了什么方法,可不可以告诉一下呢?主要是关键的技术要点不太懂啊?
作者: ziheng198688    时间: 2008-9-22 17:55
Dim Res,Conn
Set Conn = createobject("ADODB.Connection")
Conn.open="DRIVER=SQL Server;SERVER=D-pek-BYANG;UID=beyond.yang;APP=QuickTest Professional;WSID=D-PEK-BYANG;DATABASE=emsflow;Trusted_Connection=Yes"
Set Res=createobject("adodb.recordset")
Res.open"use emsflow  select username  FROM infoaget_hr_us_users",Conn,1,1
While Not Res.EOF
DataTable("name",dtGlobalSheet)=Res(0)
DataTable.SetCurrentRow(DataTable.GetCurrentRow+1)
Res.MoveNext
Wend
Set res=nothing
Set Conn=nothing
作者: nanice    时间: 2008-9-23 12:47
tasknum=Environment("tasknum")
results=Environment("results")

sql="select * from t_pz_result_"&tasknum

ConnectDatabase()

If  objConnection.state=False Then
Call oReporterManager.Report ("Fail", "连接数据库" ,"连接数据库成功" ,"连接数据库失败!", "SERVER=***;UID=***;==PWD=***;DBQ=TO**1;")
Else
Call oReporterManager.Report ("==Pass", "连接数据库" ,"连接数据库成功" ,"连接数据库成功!",  "SERVER=***;UID=***;==PWD=***;DBQ=TO**1;")
End If

DBresult = GetColumn(sql)

CloseDatabase()

If  CInt(DBresult)=CInt(results) Then

'msgbox "数据库结果数与页面结果数一致!"
Call oReporterManager.Report ("==Pass", "比对结果数" ,"数据库结果数与页面结果数一致" ,"数据库结果数与页面结果数一致", "数据库比对结果数为【"&CInt(DBresult)&"】页面比对结果数为【"&results&"】")

Else
' msgbox "数据库结果数与页面结果数不一致!比对失败!"
Call oReporterManager.Report ("Fail", "比对结果数" ,"数据库结果数与页面结果数一致" ,"数据库结果数与页面结果数不一致", "数据库比对结果数为【"&CInt(DBresult)&"】页面比对结果数为【"&results&"】")
End If

注意:ConnectDatabase()、GetColumn(sql)、CloseDatabase()、oReporterManager.Report 等都为自己写的函数,你可以替换成你那个项目的专用库函数。。。。。。基本上原理都是一样的

[ 本帖最后由 nanice 于 2008-9-23 12:49 编辑 ]
作者: xiaoan_2131    时间: 2008-9-23 17:56
呵呵,多谢了,我正找呢, 仔细研究一下,分享成果~




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