不是因为有些事情难以做到,我们才失去自信,而是我们失去了自信,这些事情才难以做到!
QTP连接数据库-rs.recordcount返回-1解决
上一篇 /
下一篇 2010-03-04 10:05:51
/ 个人分类:功能测试
51Testing软件测试网/lc-~:\M5vO&j最近研究了下qtp的动态数据库连接及动态检查点的问题,开发经验很少,因此遇到的问题很多,还好经过一段时间的研究终于搞定了,虽然是小小的收获,但是很高兴,呵呵。
.Hf-l4P-F;Vr/ng){U051Testing软件测试网;N(P"Sf0TZ其中表明解决rs.recordcount为-1的解决办法
"[h~$_G
k4~+Vw051Testing软件测试网,L:p%Y$L3Ewmv$?cqtp oracle数据库动态检查点。51Testing软件测试网3Njr
n3A;c8q@a
51Testing软件测试网~ i,of#e
U5q5K;EDim Cnn ,name1 '定义一个数据库连接串
g k8?n i)_:c0Set Cnn = CreateObject("ADODB.Connection")
)wE*p1fCQO0Cnn.ConnectionString ="DRIVER={Microsoft ODBC for Oracle};UID=phoenix;PWD=111;SERVER=RJYF100.72; "
6xy9V,ro0Cnn.Open '打开数据库连接51Testing软件测试网B$laEQ3u5`7F+v
If Cnn.State = 0 Then '判断数据库连接是否成功51Testing软件测试网6pv._u4k
d)s[
' msgbox("连接数据库失败")
lR
o}k0 Reporter.ReportEvent micFail, "testing", "连接数据库失败"
)UP8\p4T rO*E0else
@6tb_1F0 ' msgbox("连接数据库成功")51Testing软件测试网/v[
_5A}LE Z5_
~
Reporter.ReportEvent micPass, "testing", "连接数据库成功"51Testing软件测试网M1|C[/Q*Br9axeKyi
End If
7RC%^Ro&in0if Cnn.State<> 0 then
T!h.AOIY0 Set Rs=CreateObject("ADODB.Recordset") '生成记录集对象51Testing软件测试网6JBR)v M,b%j,F
strsql ="select * from business_tree t where t.enterprise_id='3' and t.state='00X'and t.name ='"+check+"'"
,bH6TGEA*F&d6Ba cF0 print strsql51Testing软件测试网
[#P
O/H3S.lA
n!o{LLm
'从数据库中查询t_sys_user的所有记录51Testing软件测试网+uUYSU}{(LPV
Rs.CursorLocation=3 ' 添加此语句可以解决rs.recordcount为-1的问题51Testing软件测试网!_8Vl|s)\j!zg
rs.Open strsql ,Cnn,3,1 '执行sql语句,记录可以自由移动,单数记录处于只读模式51Testing软件测试网fWdlQ/x+j
name1=Rs("name") '取得字段为business_tree的记录,游标定义在第一行,所以取得的是该字段所在行的第一行数据
T`/D~H0 msgbox cstr( name1)51Testing软件测试网&UVgzzVi)R~3M
dim a
wA,xj%eH9H0 a= check '该a的数据库可以从外部获取,可以是某个页面的某个值,拿来跟数据库中的值做比较
Q}g3L3bT?F:m0 print Rs.Recordcount51Testing软件测试网%{uF4]e7U
for i=1 to Rs.Recordcount '开始遍历数据库中所有的行数,Rs.Recordcount表示统计数据库表的总记录数51Testing软件测试网X.m0r,QDh
if Cstr( name1)= Cstr (a) then '将数据库中USER_ID字段的值与变量a进行挨个比较,51Testing软件测试网"qL*}#`_
'If Rs("name")=check then51Testing软件测试网[.siWU.p
Reporter.ReportEvent micPass, "查询数据是否删除成功!", "删除成功!"51Testing软件测试网^
X8`"[)re:S
' Msgbox "所添加的数据在库中存在" 51Testing软件测试网0o @wid}
\x2M(g6H3r
exit for '如果在数据库中找到值check,则退出for循环 51Testing软件测试网{x$~zCM3zkQ1L
else
&a7g o ms8}i9T.L0 msgbox51Testing软件测试网 ]etGk BT9l]
Rs.MoveNext '如果数据库中的值与check不相等的话,那么 在数据库中将游标移到下一行
TuI8u2d;i0 end if51Testing软件测试网!e.H%lFo
next
S3Y]wn:|
n@V0end if51Testing软件测试网g|:x#Z6qws
Ev s
RS.close '关闭记录集
#U0l/y\)KWy0Set RS=nothing '释放对象51Testing软件测试网$?)?E#oO
Cnn.Close '关闭数据连接
u%q(oa&~V;w4vo0Set Cnn=nothing '释放对象
xjM9hcX0b051Testing软件测试网|NF0y+t\
KT:?
Z6]U%n~0
收藏
举报
TAG: