不是因为有些事情难以做到,我们才失去自信,而是我们失去了自信,这些事情才难以做到!

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$L3Ewm v$?c

qtp oracle数据库动态检查点。51Testing软件测试网3Njr n3A;c8q@a

51Testing软件测试网~ i,of#e U5q5K;E

Dim 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
@6t b_1F0     '  msgbox("连接数据库成功")51Testing软件测试网/v[ _5A}LE Z5_ ~
      Reporter.ReportEvent micPass, "testing",   "连接数据库成功"51Testing软件测试网M1|C[/Q*Br9axeKy i
End If
7RC%^Ro&in0if Cnn.State<> 0  then
T!h.AOIY0    Set Rs=CreateObject("ADODB.Recordset")    '生成记录集对象51Testing软件测试网6JBR)vM,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软件测试网+uUYS U}{(LPV
       Rs.CursorLocation=3 ' 添加此语句可以解决rs.recordcount为-1的问题51Testing软件测试网!_8Vl|s)\j!zg
        rs.Open strsql ,Cnn,3,1   '执行sql语句,记录可以自由移动,单数记录处于只读模式51Testing软件测试网fWd lQ/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软件测试网%{u F4]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软件测试网[.s iWU.p
    Reporter.ReportEvent micPass, "查询数据是否删除成功!",   "删除成功!"51Testing软件测试网 ^ X8`"[)re:S
       '    Msgbox "所添加的数据在库中存在"  51Testing软件测试网0o@wid} \x2M(g6H3r
           exit for                        '如果在数据库中找到值check,则退出for循环      51Testing软件测试网{x$~zCM3zkQ1L
           else
&a7g o m s8}i9T.L0     msgbox51Testing软件测试网 ]etGkB T9l]
           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\)KW y0Set RS=nothing        '释放对象51Testing软件测试网$?)?E#oO
Cnn.Close   '关闭数据连接
u%q(oa&~V;w4vo0Set Cnn=nothing '释放对象

xjM9hcX0b051Testing软件测试网|NF0y+t\

 

KT:? Z6]U%n~0

TAG:

 

评分:0

我来说两句

Open Toolbar