QTP操作Oracle数据库函数

时间:2021-06-16 14:56:56

QTP自动化测试过程中,可能会用到对数据库的操,其它的数据库例如Mysql、SqlServer、DB2等类似,只是ConnectionString连接字符串不一样,不同的数据库,连接串略有差别,以下是一个针对oracle操作的一个连接函数。

  Dim Cnn '定义一个数据库连接串

  Set Cnn = CreateObject("ADODB.Connection")

  Cnn.ConnectionString ="Provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=test;Password=test;Data Source=31"

  Cnn.Open '打开数据库连接

  If Cnn.State = 0 Then '判断数据库连接是否成功

  Reporter.ReportEvent micFail, "testing", "连接数据库失败"

  else

  Reporter.ReportEvent micPass, "testing", "连接数据库成功"

  End If

  if Cnn.State<> 0 then

  Set Rs=CreateObject("ADODB.Recordset") '生成记录集对象


  strsql ="Select * from t_sys_user" '从数据库中查询t_sys_user的所有记录


  Rs.Open strsql ,Cnn,1,3 '执行sql语句,记录可以*移动,单数记录处于只读模式


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


  msgbox ydl

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

  for i=1 to Rs.Recordcount '开始遍历数据库中所有的行数,Rs.Recordcount表示统计数据库表的总记录数

  if Rs("USER_ID")=a then '将数据库中USER_ID字段的值与变量a进行挨个比较,

  msgbox "a在数据库中存在"

  exit for '如果找到记录a,则推出for循环

  else

  Rs.MoveNext '如果数据库中的值与a不相等的话,那么在数据库中将游标移到下一行
  end if

  next

  end if

  RS.close '关闭记录集

  Set RS=nothing '释放对象
  Cnn.Close '关闭数据连接

  Set Cnn=nothing '释放对象


  另外,如果要判断游标是否到最好一行,则用

  For i=1 to Rs.Recordcount

  If Rst.EOF Then

  msgbox "已经达到数据库最后一行记录"

  Exit for

  else

  Rst.MoveNext

  End If
  Next