与您一起分享在测试过程中的快乐与辛酸...

QTP连接oracle操作方法

上一篇 / 下一篇  2010-03-16 11:30:31 / 个人分类:QTP自动化测试

    要从QTPOracle数据库,前提是已安装好Oracle客户端。然后在 Oracle Net Configuration Assistant 中完成以下配置:
1. 监听程序配置,默认即可。
2. 命名方法配置:本地。
3. 本地Net服务名配置-添加-选择<Oracle8i或更高版本数据库或服务>-DBName(可以写成你要链接的数据库名,也可以自己定义,但是要记住,因为这个名字会在QTP数据库链接设置<TNS Service Name>中用到)-选择协议<TCP>(根据实际情况)-设置主机名:192.168.1.190(数据库所在电脑的IP或是机器名),并根据实际情况设置段口号,默认为1521-进行测试,提示成功就说明在Oracle客户端建立数据库链接成功了。恭喜你。

4.获取oracle的连接串的方法,在本地新建一个.txt文件,修改扩展名名*.udl,双击*.udl文件,打开数据库链接属性,定位到“提供程序”选显卡,选中 oracle的连接  oracle provider for OLE DB,点击下一步,输入数据源,数据库用户名以及密码,点击测试连接,然后用UE或记事本打开*.udl文件,oracle的连接串已经生成了,例如
Provider=OraOLEDB.Oracle.1;Password=test;Persist Security Info=True;User ID=test;Data Source=192.168.1.190
以上就是udl文件生成的oracle连接串

5.在QTP中来连接数据库

Dim Cnn  '定义一个数据库连接串
Set Cnn = CreateObject("ADODB.Connection")
Cnn.Open ="Provider=OraOLEDB.Oracle.1;Password=test;Persist Security Info=True;User ID=test;Data Source=ORADB_192.168.1.190"

If Cnn.State = 0 Then      '判断数据库连接是否成功
     Reporter.ReportEvent micFail, "testing", "连接数据库失败"
else
     Reporter.ReportEvent micPass, "testing",   "连接数据库成功"
End If

if Cnn.State<> 0  then
    Set Rs=CreateObject("ADODB.Recordset")    '生成记录集对象
    sql ="select * from cust"  '从数据库中查询cust的所有记录
    Rs.Open sql ,Cnn,1,3  '执行sql语句,记录可以自由移动,单数记录处于只读模式
    uid=Rs("custid") '取得字段为custid的记录,游标定义在第一行,所以取得的是该字段所在行的第一行数据
    msgbox uid
End If

RS.close       '关闭记录集
Set RS=nothing  '释放对象
Cnn.Close   '关闭数据连接
Set Cnn=nothing '释放对象

6.RecordSet对象(代表来自基本表或命令执行结果的记录的全集。)
为了更精确地跟踪数据,要用RecordSet组件创建包含数据的游标,游标就是储存在内存中的数据:

  rs = Server.CreateObject("ADODB.RecordSet")

  rs.Open(sqlStr,conn,1,A)

   RS.OPEN SQL,CONN,A,B

A:

ADOPENFORWARDONLY(=0)
只读,且当前数据记录只能向下移动

ADOPENKEYSET(=1)
只读,当前数据记录可自由移动

ADOPENDYNAMIC(=2)
可读写,当前数据记录可自由移动

ADOPENSTATIC(=3)
可读写,当前数据记录可自由移动,可看到新增记录

B:

ADLOCKREADONLY(=1)
缺省锁定类型,记录集是只读的,不能修改记录

ADLOCKPESSIMISTIC(=2)
悲观锁定,当修改记录时,数据提供者将尝试锁定记录以确保成功地编辑记录。只要编辑一开始,则立即锁住记录。

ADLOCKOPTIMISTIC(=3)
乐观锁定 ,直到用Update方法提交更新记录时才锁定记录。

ADLOCKBATCHOPTIMISTIC(=4)
批量乐观锁定,允许修改多个记录,只有调用UpdateBatch方法后才锁定记录。

当不需要改动任何记录时,应该使用只读的记录集,这样提供者不用做任何检测。
对于一般的使用,乐观的锁定可能是最好的选择,因为记录只被锁定一小段时间,
数据在这段时间被更新。这减少了资源的使用。

  在RecordSet组件中,常用的属性和方法有:

  rs.Fields.Count:RecordSet对象字段数。

  rs(i).Name:第i个字段的名称,i为0至rs.Fields.Count-1

  rs(i):第i个字段的数据,i为0至rs.Fields.Count-1

  rs("字段名"):指定字段的数据。

  rs.RecordCount:数据记录总数。

  rs.EOF:是否最后一条记录。

  rs.MoveFirst:指向第一条记录。

  rs.MoveLast:指向最后一条记录。

  rs.MovePrev:指向上一条记录。

  rs.MoveNext:指向下一条记录。

  rs.GetRows:将数据放入数组中。

  rs.Properties.Count:ADO的ResultSet或Connection的属性个数。

  rs.Properties(item).Name:ADO的ResultSet或Connection的名称。

  rs.Properties:ADO的ResultSet或Connection的值。

  rs.close():关闭连接。


TAG: Oracle oracle QTP qtp RecordSet

- -喜欢玩单机 引用 删除 levelksk   /   2011-02-17 22:02:02
5
 

评分:0

我来说两句

Open Toolbar