循环执行法—把所有的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软件测试网获人民邮电出版社和作者授权独家连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
相关阅读: