致力于自动化测试技术,性能测试技术的研究,测试技术培训以及项目实施,做一个技术与实施的主导者。

QTP操作Oracle数据库函数

上一篇 / 下一篇  2012-11-11 13:56:51 / 天气: 晴朗 / 心情: 高兴 / 个人分类:Quick Test Professional

8j O6@j*G Lx d0QTP自动化测试过程中,可能会用到对数据库的操,其它的数据库例如Mysql、SqlServer、DB2等类似,只是ConnectionString连接字符串不一样,不同的数据库,连接串略有差别,以下是一个针对oracle操作的一个连接函数。51Testing软件测试网fDpc|j3Y

Lk4X,B~$i&Z0  Dim Cnn '定义一个数据库连接串51Testing软件测试网!r }U$dT!u'|t5A

51Testing软件测试网B6Cb^8u$h @p

  Set Cnn = CreateObject("ADODB.Connection")

0ERj6S(OY-H0O0

9d i8?4fX!{f0  Cnn.ConnectionString ="Provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=test;Password=test;Data Source=31"

,Y Py%M W0

lzA |]g)Y'_0  Cnn.Open '打开数据库连接51Testing软件测试网!S_h9Pf+`

b.S(\{/[;WCS0  If Cnn.State = 0 Then '判断数据库连接是否成功51Testing软件测试网O-JV3n ?_

7l] X4}4LWI4d,W0  Reporter.ReportEvent micFail, "testing", "连接数据库失败"

)Ko7Nh]%k_051Testing软件测试网]e:jw&hn

  else51Testing软件测试网$`#XG3|||ma

Sle-o`O$G0  Reporter.ReportEvent micPass, "testing", "连接数据库成功"51Testing软件测试网7M3~1_3F RwO

yUVS2n(@0  End If

5\}S yc c:F G] Vj6g0

4`5DT_4o4x e0  if Cnn.State<> 0 then

Z B d(It!}nn051Testing软件测试网W LI:I"~!L Y*yu"P9W

  Set Rs=CreateObject("ADODB.Recordset") '生成记录集对象51Testing软件测试网;ceF xl(hm Yo0\{9C

d iW!A+k W$k%{051Testing软件测试网%Rb%@osE'I w
  strsql ="Select * from t_sys_user" '从数据库中查询t_sys_user的所有记录51Testing软件测试网w6R X7R5om(Y

G1M X9Ijn@-XA0
:f U#KCB0  Rs.Open strsql ,Cnn,1,3 '执行sql语句,记录可以自由移动,单数记录处于只读模式51Testing软件测试网:A3x-MK!Z2]2u U3\ h

51Testing软件测试网 A'z9GE0@(] R


w~9ux/j0  ydl=Rs("USER_ID") '取得字段为USER_ID的记录,游标定义在第一行,所以取得的是该字段所在行的第一行数据

D4Mg(F8F4Id051Testing软件测试网.o+MO9aY.j ID3Ej


/ftG De9nSF0  msgbox ydl

9cd'd/win051Testing软件测试网*Ol\ FG"\6N

  dim a
&X @h3eb&x+Wqu0  a="1188" '该a的数据库可以从外部获取,可以是某个页面的某个值,拿来跟数据库中的值做比较

J1fH0d7{2wB0

[(mp R{SfMf0  for i=1 to Rs.Recordcount '开始遍历数据库中所有的行数,Rs.Recordcount表示统计数据库表的总记录数51Testing软件测试网~6I/S!C2I4s5Q#Pu

51Testing软件测试网;Rp3Y,^k6S*W

  if Rs("USER_ID")=a then '将数据库中USER_ID字段的值与变量a进行挨个比较,51Testing软件测试网7?q~6[2f

51Testing软件测试网*m#NB/Sm X3_5a7k0`u

  msgbox "a在数据库中存在"51Testing软件测试网a]"c+C yP9VV ?

l6v(W_i"]7J0  exit for '如果找到记录a,则推出for循环

/y6xJY _0K|051Testing软件测试网R?i6]5TN7Wc

  else

Y^_ eM^8h051Testing软件测试网HrHX"N~ pI\2K

  Rs.MoveNext '如果数据库中的值与a不相等的话,那么在数据库中将游标移到下一行51Testing软件测试网`i |vA"@
  end if51Testing软件测试网_cmu]*y6`Y

j*u p]qA~3R~0  next

aO)Wbw_Y051Testing软件测试网!T/|7h$P8P/hK5}

  end if

ciJZz8r h0

]"``GV0  RS.close '关闭记录集51Testing软件测试网&^Gl Ve.b3@"t

/lqa3]pF0  Set RS=nothing '释放对象
uuGA~4~x0  Cnn.Close '关闭数据连接51Testing软件测试网4z t(_%LHz$S

51Testing软件测试网9M'e1fh{(~ y8`&h

  Set Cnn=nothing '释放对象

!{*syo afNZ.L_0

8]o~S,_F8VO _0
P0k.Z EG_0  另外,如果要判断游标是否到最好一行,则用51Testing软件测试网,S%[gl*CP e9@

`VJTd0  For i=1 to Rs.Recordcount51Testing软件测试网(QV _ o-B1K'Pe

51Testing软件测试网(qc9B0?&wkEq.u

  If Rst.EOF Then

p.Z.SQA1_051Testing软件测试网:M H$toGR

  msgbox "已经达到数据库最后一行记录"51Testing软件测试网1JS{:} uz

51Testing软件测试网9t"N0UJd-w

  Exit for51Testing软件测试网*q%lQ;p/n Y

b,h'`|I)h^U.m/~$Lq0  else

FmFzYAU9e0

9r&D$SZn"RA)s0  Rst.MoveNext

"WRL? Bslr A0

6l%kuq yr6h0  End If51Testing软件测试网*[v5@,U zM5FV
  Next
Zh-|d2x1e z.y r:F051Testing软件测试网%Z*Y(A9pl*Ds


TAG:

 

评分:0

我来说两句

vprince

vprince

6年软件测试经验,TIB自动化测试工作室核心成员,ATF框架核心设计和开发人员,熟悉软件自动化测试、性能测试,多年从事软件项目的自动化测试和性能测试,对自动化测试的框架设计开发、框架搭建以及实施有较为丰富的实战经验。 目前关注开源自动化测试领域、 基于Selenium构建Web自动化测试框架,为多家企业进行自动化测试培训、实施自动化测试项目。

日历

« 2024-05-06  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 67499
  • 日志数: 49
  • 建立时间: 2009-09-09
  • 更新时间: 2012-12-14

RSS订阅

Open Toolbar