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

QTP连接数据库-rs.recordcount返回-1解决

上一篇 / 下一篇  2010-03-04 10:05:51 / 个人分类:功能测试

Yn2w`cTfE0最近研究了下qtp的动态数据库连接及动态检查点的问题,开发经验很少,因此遇到的问题很多,还好经过一段时间的研究终于搞定了,虽然是小小的收获,但是很高兴,呵呵。51Testing软件测试网 gLjW8q

51Testing软件测试网q.~&n"u`K5P

其中表明解决rs.recordcount为-1的解决办法51Testing软件测试网U.y.U0zw3QO

T{ {\o7~ q0qtp oracle数据库动态检查点。

bZ A-G-Q051Testing软件测试网0JE'G7^ hu5\:q$@

Dim Cnn ,name1 '定义一个数据库连接串51Testing软件测试网8[ pR0S4l
Set Cnn = CreateObject("ADODB.Connection")
V,WS6mRQE0Cnn.ConnectionString ="DRIVER={Microsoft ODBC for Oracle};UID=phoenix;PWD=111;SERVER=RJYF100.72; "
GU5G4`5p)B&\z;s.L"K0Cnn.Open   '打开数据库连接
~w.sr+y\0If Cnn.State = 0 Then      '判断数据库连接是否成功
Y~t*C8\ ~\*U |0   ' msgbox("连接数据库失败")51Testing软件测试网},v&^&@k7s5p:F
  Reporter.ReportEvent micFail, "testing", "连接数据库失败"51Testing软件测试网 [q;FYY P
else51Testing软件测试网FvX veyrm0~%`;W
     '  msgbox("连接数据库成功")
Z Ab]X*kt7s [ u0      Reporter.ReportEvent micPass, "testing",   "连接数据库成功"
#^ dXG9ylH|8c*B&t0End If51Testing软件测试网p1{D1v ai?f:[6p
if Cnn.State<> 0  then
b)C2A'E3Q`OH0    Set Rs=CreateObject("ADODB.Recordset")    '生成记录集对象51Testing软件测试网6P7G+](~9f0o
 strsql ="select * from business_tree t  where t.enterprise_id='3'  and t.state='00X'and t.name ='"+check+"'"51Testing软件测试网w.SS-JbNJc c
 print strsql51Testing软件测试网6~A,ep\d B3X2?Z
'从数据库中查询t_sys_user的所有记录
8[f t c5CB0       Rs.CursorLocation=3 ' 添加此语句可以解决rs.recordcount为-1的问题51Testing软件测试网6iA(D4Xe Y7[
        rs.Open strsql ,Cnn,3,1   '执行sql语句,记录可以自由移动,单数记录处于只读模式51Testing软件测试网"}&u x`@:G/f
        name1=Rs("name")         '取得字段为business_tree的记录,游标定义在第一行,所以取得的是该字段所在行的第一行数据
DTD&yA3]0         msgbox cstr( name1)
w]Wy"Bmy0         dim a
0|7_!ze e0          a=  check   '该a的数据库可以从外部获取,可以是某个页面的某个值,拿来跟数据库中的值做比较
P aaN J%m(i&K0          print  Rs.Recordcount
!x,]-m(@kL*s0   for  i=1  to  Rs.Recordcount   '开始遍历数据库中所有的行数,Rs.Recordcount表示统计数据库表的总记录数
[(q Z.O%H^(w|u0        if   Cstr( name1)= Cstr (a)  then   '将数据库中USER_ID字段的值与变量a进行挨个比较,
EV%_@/x IC0  'If   Rs("name")=check   then
Xv@i#{3u;V0    Reporter.ReportEvent micPass, "查询数据是否删除成功!",   "删除成功!"
QMw&v0f5q+L;^#N0       '    Msgbox "所添加的数据在库中存在"  51Testing软件测试网 ew*AQi$x)k^
           exit for                        '如果在数据库中找到值check,则退出for循环      
A)y` |FJ.nR5@)l0           else
D5W:] Q:H_0     msgbox51Testing软件测试网-{(K"_dz5j
           Rs.MoveNext                      '如果数据库中的值与check不相等的话,那么 在数据库中将游标移到下一行51Testing软件测试网N?eS/yapj
        end  if51Testing软件测试网5Oa!p _;j&vx.T
   next
A2w+j8g!Z k0end if
B+H aJ*M0RS.close      '关闭记录集
,w!P_6~VN,Xx ^0Y0Set RS=nothing        '释放对象
&H'U#TR s+f0i8yj4a0Cnn.Close   '关闭数据连接51Testing软件测试网j+{.K2]1Z,|H6~
Set Cnn=nothing '释放对象51Testing软件测试网 sW4f&s(K{

"?D![*d"Vc0 

:G/QJ6Z/IUU9N2I0

TAG:

 

评分:0

我来说两句

Open Toolbar