51Testing丛书连载:(四十四)精通QTP——自动化测试技术领航

发表于:2012-2-13 10:53

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:余杰 赵旭斌    来源:51Testing软件测试网

分享:

  循环执行法—把所有的SQL语句分割成数组,并把数组全部取出进行循环执行SQL:

Dim adoConn '定义ADO连接对象

Dim ConnectionStr '定义数据库连接字符串

'获取数据库连接字符串

ConnectionStr = "Driver=MySQL ODBC 5.1 Driver;"+ _

+"SERVER=localhost;UID=root;PWD=root;DATABASE=test;PORT=3306"

获取sql语句数组集合

SQLCommands = GetSQLCommands("d:\sql.txt")

'创建数据库连接对象

Set adoConn = CreateObject("adodb.Connection")

'利用数据库连接字符串打开数据库

adoConn.Open ConnectionStr

循环执行sql语句

For i=0 To UBound(SQLCommands)

          adoConn.Execute SQLCommands(i)

Next

'关闭数据库

adoConn.Close

'释放数据库对象

Set adoConn = Nothing

'******获取文本文件中的数据库查询语句集*********

Function GetSQLCommands(sqlPath)

        '创建fso模型对象

        Set fso=CreateObject("Scripting.FileSystemObject")

        '获取txt文本对象

        Set txtfile = fso.OpenTextFile(sqlPath)

        

        '获取txt中的所有文本

        allSQLCommand = txtfile.ReadAll

        

        '对所有文本通过回车进行分割,把sql语句分割成数组

        sqlcommands = Split(allSQLCommand ,Chr(10))

        

        '返回所有sql语句数组

        GetSQLCommands = sqlcommands 

        

        '释放txtfile

        Set txtfile = Nothing

        

        '释放fso

        Set fso = nothing

End Function

'******************** END *********************

  分析:

  执行以上脚本,只需要另外再准备一个SQL语句的文本文件,会发现这样的脚本是把数据和脚本做了完全的分离,就相当于动态地取SQL语句。就是数据库初始化准备的SQL脚本发生了变化,也不会对脚本产生任何影响。因为所有脚本都是动态读取文本文件的,而一旦数据库准备的SQL语句发生变化,只需要直接更改SQL文本文件即可。

  注意,此处使用换行符chr(10)来进行分割是因为在这里读取的SQL文件的语句为换行分割的,如果是分号的,就用“;”来分割,这个看个人习惯了,一般使用回车符来分割语句比较常见。

本文选自《51Testing软件测试作品系列》之九——《精通QTP——自动化测试技术领航》。

本站经人民邮电出版社和作者的授权,近期将进行部分章节的独家连载,敬请期待!

版权声明:51Testing软件测试网获人民邮电出版社和作者授权独家连载本书部分章节。

任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。

相关阅读:

查看本书介绍>>

查看本书更多试读章节连载>>

查看软件测试作品系列其他书籍>>

44/4<1234
价值129的会员专享直播免费赠送,添加微信领取听课名额哦~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计

法律顾问:上海漕溪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号