51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2867|回复: 0
打印 上一主题 下一主题

TestComplete,ADO.NET使用例子

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-5-18 23:47:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
TestComplete中,连接数据库,做各种的查询操作,可使用ADOBDE(例子见TestComplete中创建ADOCommand),也可通过大家比较熟悉的ADO.NET进行,先对其的使用做了两个简单例子,把使用比较频繁的查询操作封装在一个函数里,很方便在需要使用的地方调用,增强代码的可读性,减少代码冗余及提高工作效率:
//  日期:2008-5-18

//  描述:指定表名及字段,查找预期值在表中的记录条数

//  参数:TableName,比较记录所在的表名;FieldName,比较的字段;FindValue,查找的值;sqlconStr,数据库连接串

//  返回值:符合的记录条数

function ISInDB_Count(TableName:string, FieldName:string, FindValue:string, sqlconStr:string):Integer;

var sqlcon, sqlcmd, sqlDataAdapter, ds, SqlString, count;

begin

  //创建数据库连接对象

  sqlcon := dotNET.system_Data_SqlClient.SqlConnection.zctor(sqlconStr);

  sqlcon.open();

  //构造SQL查询语句

  SqlString := 'Select * from ' + TableName + ' where ' + FieldName + ' = ''' + FindValue + '''';

  sqlcmd := dotNET.system_Data_SqlClient.SqlCommand.zctor_3(SqlString, sqlcon);

  sqlDataAdapter := dotNET.system_Data_SqlClient.SqlDataAdapter.zctor_2(sqlcmd);

  ds := dotNET.system_Data.DataSet.zctor;

  sqlDataAdapter.Fill(ds);

  //返回符合条件的记录

  count := ds.Tables.Item[0].Count;

  reuslt := count;

end;


//  日期:2008-5-18

//  描述:根据ID查找表中的记录,比较某字段的值是否等于预期值

//  参数:TableName,比较记录所在的表名;FieldName,比较的字段;CompareValue,比较的值;ID,比较值对应的IDsqlconStr,数据库连接串

//  返回值:0,相等;1,不相等;2,没有符合的记录

function DBCompareValue_ByID(TableName:string, FieldName:string, CompareValue:string, ID:string, sqlconStr:string):Integer;

var sqlcon, sqlcmd, sqlDataAdapter, ds, SqlString, count, i, temp;

begin

  //创建数据库连接对象

  sqlcon := dotNET.system_Data_SqlClient.SqlConnection.zctor(sqlconStr);

  sqlcon.open();

  //构造SQL查询语句,其中m_ID为表中ID的列

  SqlString := 'Select * from ' + TableName + ' where m_ID =''' + ID + '''';

  sqlcmd := dotNET.system_Data_SqlClient.SqlCommand.zctor_3(SqlString, sqlcon);

  sqlDataAdapter := dotNET.system_Data_SqlClient.SqlDataAdapter.zctor_2(sqlcmd);

  ds := dotNET.system_Data.DataSet.zctor;

  sqlDataAdapter.Fill(ds);

  //返回符合SQL语句条件的记录

  count := ds.Tables.Item[0].Count;

  //表中没有符合的记录,返回2

  if count = 0 then

  begin

    result := 2;

    exit;

  end

  else

  begin

    for i:=0 to count - 1 do

    begin

      //取出记录的值于CompareValue比较是否相等

      temp := ds.Tables.Item[0].Columns.Item_2(FieldName).Item.OleValue;

      if CompareStr(temp, CompareValue) = 0 then

      begin

        result := 0;

        exit;

      end;

    end;

  end;

  Reuslt := 1;

end;

注:必要时参照以上例子,可以封装很多类似的数据库操作函数,在自动化过程中调用。 更多信息
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-20 23:35 , Processed in 0.062794 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表