8jO6@j*G
Lx d0在QTP自动化测试过程中,可能会用到对数据库的操,其它的数据库例如Mysql、SqlServer、DB2等类似,只是ConnectionString连接字符串不一样,不同的数据库,连接串略有差别,以下是一个针对oracle操作的一个连接函数。51Testing软件测试网fDpc|j3Y
Lk4X,B~$i&Z0 Dim Cnn '定义一个数据库连接串51Testing软件测试网!r
}U$dT!u'|t5A
51Testing软件测试网B6C b^8u$h
@p Set Cnn = CreateObject("ADODB.Connection")
0ERj6S(OY-H0O09d
i8?4fX!{f0 Cnn.ConnectionString ="Provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=test;Password=test;Data Source=31"
,YPy%M
W0lz A
|]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\}Syc
c:F G]Vj6g04`5DT_4o4x
e0 if Cnn.State<> 0 then
Z
B
d(It!}nn051Testing软件测试网W
LI:I"~!L Y*y u"P9W Set Rs=CreateObject("ADODB.Recordset") '生成记录集对象51Testing软件测试网;ceF
xl(hm Yo0\{9C
diW!A+kW$k%{051Testing软件测试网%Rb%@osE'Iw
strsql ="Select * from t_sys_user" '从数据库中查询t_sys_user的所有记录51Testing软件测试网 w6R X7R5o m(Y
G1MX9Ijn@-X A0
: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
ciJZz8rh0 ]"``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_08]o~S,_F8VO _0
P0k.Z
EG_0 另外,如果要判断游标是否到最好一行,则用51Testing软件测试网,S%[g l*CP
e9@
`VJT d0 For i=1 to Rs.Recordcount51Testing软件测试网(Q V
_ 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
FmF zYAU9e09r&D$SZn"RA)s0 Rst.MoveNext
"WR L? BslrA06l%kuq
yr6h0 End If51Testing软件测试网*[v5@,U
zM5FV
Next
Zh-|d2x1e
z.y r:F051Testing软件测试网%Z*Y(A9pl*Ds