google搜索 站内搜索                 软件测试门户 | 软件测试培训 | 文章资料精选 | 软件测试论坛 | 测试解决方案 | 软件测试博客 | 测试招聘求职 
打印

手写Oracle数据库的连接

手写Oracle数据库的连接


请教大家一个问题:
检验一个查询功能实现是否正确,查看查询出来的数据与数据库中的数据是否一致。
我用QTP录制一个脚本,想对Oracle数据库中的一个表的字段进行检查,来确定查询结果与数据库中的结果一直与否。
已经有数据源存在:
DSN=srit;UID=SDE;PWD=SDE;DBQ=ORACLE ;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=F;BAM=IfAllSuccessful;MTS=F;MDI=F;CSR=F;FWC=F;PFC=10;TLO=0;

问题1:在QTP中用什么方法来调用执行连接这个数据源?
问题2:因为Oracle的表是对应相应的用户来显示的,如:select "SDE"."STORE_BASED_RETAILING"."ENTERPRISE_NAME", from "SDE"."STORE_BASED_RETAILING" ,我怎么样把它保存为一个字符串了?(使用转义字符?不过忘了怎么用了)在这里我想通过SQL语句来查询一个具体的数据检查点。

[ 本帖最后由 angel_test 于 2006-7-20 16:04 编辑 ]

TOP

我手头暂时没有Oracle数据库,所以我给段sql的例子参考,其实大致情况还是差不多的.

'连接SQL数据库
Dim res,cmd,sql

Set Res=createobject("adodb.recordset")
Set Cmd=createobject("adodb.command")
Cmd.activeconnection="Provider=SQLOLEDB.1;Password=111111;Persist Security Info=True;User ID=sa;Initial Catalog=xhq;Data Source=192.168.191.142"
Cmd.CommandType = 1
sql="select name from company where (id=1)"
Cmd.CommandText = sql
Set res = Cmd.Execute()
msgbox res("name")
Set res = nothing
Set cmd.ActiveConnection = nothing
Set Cmd= nothing

"Provider=SQLOLEDB.1;Password=111111;Persist Security Info=True;User ID=sa;Initial Catalog=xhq;Data Source=192.168.191.142"这段数据源可能和你的数据源不大一样.你可以新建.udl文件,然后双击.udl文件,选择for Oracle进行获取.全部设置完,测试通过后,就用文本文件打开这个.udl文件就能得到这句话.

[ 本帖最后由 xiaonan 于 2006-7-20 17:20 编辑 ]

TOP

试着连了下,应该可以的

Dim rs,sq
set conn=createobject("adodb.connection")
set  rs=createobject("adodb.recordset")
' Oracle client  is required to be installed on your box
conn.open="Driver={Microsoft ODBC for Oracle};Server=SID_HOST.DOMAIN.COM;Uid=mssqa;Pwd=password;"

sql="select *  from CLIENT_TABLE"
rs.open sql,conn,3,3

'Services.StartTransaction "TIMER"

do while not rs.eof
values=rs("CLIENT_NAME")
if values<>"State Street Corporation" then
        Reporter.ReportEvent 2, "ClientNameSearched:"&"   "&values, ""
        rs.movenext
else
        Reporter.ReportEvent 0, "ClientNameFound:"&"   "&values,""
                     exit do
end if
Loop

'Services.EndTransaction "TIMER"

rs.close
set rs=nothing
conn.close
set conn=nothing

参考资料
1. VBScrip Database Tutorial  http://www.electronics.dit.ie/st ... base%20Tutorial.pdf
2. ADO介绍  http://www.51windows.net/pages/a ... scadogsoverview.htm
3. 数据库连接字符串 http://www.connectionstrings.com/

希望有用:)

[ 本帖最后由 readytofly 于 2006-7-21 13:44 编辑 ]

TOP

呵呵,真的谢谢楼上的两位,小女子感激不尽!

TOP

感謝分享

TOP

正研究这方面的知识!!顶一个
人生=事业+爱情+生活

TOP

 
当前时区 GMT+8, 现在时间是 2008-12-5 09:08Copyright(C)上海博为峰软件技术有限公司 2001-2007 电话:021-64471599-8017
当您在访问网站、论坛及博客过程中遇到问题时可发送email:webmaster@51testing.com或发送论坛短信至管理员风在吹