终于有家了!

QTP通过.NET组件访问多种数据库的方法

上一篇 / 下一篇  2008-09-25 17:43:13 / 个人分类:QTP

   在编辑QTP脚本中经常需要访问数据库或者Excel,针对数据库或者文件的访问,大家最常用的应该是使用ADO的一系列对象,例如获取数据库连接对象:Set connObj = CreateObject("ADODB.Connection");获取记录集获取对象:Set rdsObj = CreateObject("ADODB.Recordset"),获取Excel文件访问对象:Set excelObj = CreateObject("Excel.Application")等等。不知道大家使用过程中有何感受,我感觉最不爽的地方就是读取记录集中的数据,必须要和数据库保持连接状态,并且还要使用循环来读取数据,不能一下子定位到我想要的数据(可能是自己还不太会用吧,抱歉O(∩_∩)O哈哈~)。曾经用C#写过几年的程序,感觉使用ADO.NET的系列对象来访问数据库、操作数据是相当的方便,所以一想到访问数据库和XML格式的数据就想到ADO.NET的数据库访问对象,DataSet、DataTable对数据的访问还是比较方便。最令人兴奋的是QTP可以通过创建数据库访问对象的方式使用ADO.NET,并且操作的方式和流程与在C#下编程思路没有多大区别。废话少说,言归正传。

首先教给大家一个小知识,如何获取各种数据库连接字符串:

新建一个文本文件,把它的扩展名修改成udl,名字可以任意起,如:db.udl,双击该文件按照操作提示即可获取,赶快试一下吧,很不错的。

OK,开始我们的旅行吧!

 

  首先先附上一个通过.NET从SqlServer数据库读取数据的C#源代码(如果需要访问Access数据库,可以将访问对象修改成System.Data.OleDb下的相关对象,如果需要访问foxpro数据库,可以将访问对象修改成System.Data.Odbc下的相关对象,并且是通用的,Odbc基本可以访问大部分关系型数据库)

 public System.Data.DataTable GetAccessData(string selectCmdText)
 {

      string str = "server=.;database=StudentDB;uid=sa;pwd=sa";
      System.Data.SqlClient.SqlConnection conn = new SqlConnection();
      conn.ConnectionString = str;
      conn.Open();
      System.Data.SqlClient.SqlCommand cmd =new System.Data.SqlClient.SqlCommand();
      cmd.CommandText = selectCmdText;
      cmd.Connection = conn;
      System.Data.SqlClient.SqlDataAdapter adapter=new System.Data.SqlClient.SqlDataAdapter();
      adapter.SelectCommand = cmd;
      System.Data.DataTable dtdata = new DataTable();
      adapter.Fill(dtdata);
      conn.Close();
      return dtdata;
  }

以上代码对应到QTP的vb脚本中如下所示:

Dim conn
Set conn = DotNetFactory.CreateInstance("System.Data.SqlClient.SqlConnection")
conn.ConnectionString = "server=.;database=StudentDB;uid=sa;pwd=sa"
conn.Open()

Dim cmd

Set cmd = DotNetFactory.CreateInstance("System.Data.SqlClient.SqlCommand")

cmd.CommandText="select * from student"
cmd.Connection = conn
Dim adapter
Set adapter = DotNetFactory.CreateInstance("System.Data.SqlClient.SqlDataAdapter")

adapter.SelectCommand = cmd
Dim dtdata

Set dtdata= DotNetFactory.CreateInstance("System.Data.DataTable")
dtdata.TableName="qtptest"
adapter.Fill(dtdata)
conn.Close

msgbox dtdata.Rows.Count  '显示获取的数据条数

今天事情真多,先写到这里吧,下次把通过DataSet对象对xml数据的操作给大家贡献出来,相信你会放弃使用通过ADO的对象访问xml数据的,只是个人见解,多提宝贵意见!!


TAG: QTP QTP访问数据库

 

评分:0

我来说两句

我的栏目

日历

« 2024-04-18  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 6503
  • 日志数: 5
  • 建立时间: 2008-09-25
  • 更新时间: 2009-12-17

RSS订阅

Open Toolbar