此刻即可学习,何必要挑日子。

QTP远程连接/操作Mysql 及 Mysql的相关概念

上一篇 / 下一篇  2016-11-09 09:45:55 / 个人分类:QTP(UFT)

    之前了解过QTP是可以远程连接并操作Mysql的,也听@gelan 说往后我们的数据库不用sqlite,都要换成mysql,所以准备具体了解下QTP如果实现对Mysql的远程操作,以便以后有对数据库进行测试的需求。趁着TAO项目脚本测试的空隙学了下,终于算是有了点进展。(一些操作并未详细说明,度娘很亲切,会让你学到更多)

    首先Mysql要能够被远程连接,这需要Mysql账户开启远程连接的权限,即“%”。如下图中,如果开启了远程连接权限的账户,Host字段对应的是蓝色虚线所示的“%”,否则就是“localhost”或其他。

20151020143336_31122.png

    所以在这个Mysql服务中有一个gaga:123456的账户是具有远程连接权限的。验证其可用性,在另外一个mysql客户端里面用如下命令连接:

    接下来说明QTP如何操作数据库。我们知道QTP是通过各种组件来实现自动化操作的,其中有一个COM组件“ADO”可以实现访问并操作数据源。数据源是什么鬼???另外还牵扯到ODBC,我也不知道这都是些什么,反正看着熟悉,看了百科对这两个东西的解释,数据源倒还好,数据的来源。ODBC,开放数据库互连,连蒙带猜,对他俩为什么要出现在这有了大概的理解。

ADO->Microsoft’s ActiveX Data objects
ADO是一个可以访问并操作数据源的一个COM组建。包括三个主要对象:
Connection对象:
主要掌握数据库的连接和关闭功能,有了它可以通过对应字符串来连接数据库。
Command对象:
主要完成SQL语句执行,包括增删改查以及存储过程。
RecordSet对象:
主要存放执行后的数据结果集。当一个执行语句被执行返回给RecordSet之后,此时RecordSet对象就包括了当前所有执行结果集,并且可以通过EOF方法循环遍历。

    创建一个数据源,告诉我们要连接的是哪个数据库,而ODBC做了所有工作,利用一系列API连接数据库,传送SQL语句,查找,操作数据库。这些都是表面工作,实际操作还也不太明白是怎么实现的。这一切都是整合在ODBC这一个东西里面的,ADO这个组件的工作是操作数据源,数据源出发ODBC的工作,可能内部就是这样的吧。

    所以这时候就清楚了,将自己定位成编码者,那我只需要知道我如何用ADO操作数据源,那就万事OK了。

    这其中有额外操作,因为需要安装ODBC关于Mysql的驱动程序。

       http://mysql.mirrors.pair.com/Downloads/Connector-ODBC/

    很蛋疼的一点是,我安装了5.35.1的,在创建数据源时都提示我版本不对应,应该是我们设备的mysql比较早。所以要装3.51版本的!可以使用手工创建数据源验证我们的环境和数据源是否有问题。如下表示可用:

   代码层就相对简单,以下就是简单的连接数据库操作,如何操作数据库届时再深入学习。这边需要做解释的是Driver参数,这个参数等号后面的值应该要是准确的Mysql-ODBC的驱动,版本有误是无法正常连接的。

Dim Conn
Set Conn=Createobject("ADODB.Connection") 
'Const ConnectionString="Driver={Mysql ODBC 3.51 Driver};DATAbase=test;PWD=root;PORT=3306;SERVER=localhost;UID=root" 
Const ConnectionString="Driver={Mysql ODBC 3.51 Driver};DATAbase=mysql;PWD=123456;PORT=3306;SERVER=192.168.3.224 ;UID=gaga"
Conn.Open ConnectionString
If Conn.State<>0Then
	msgbox "连接数据库成功"
else
	msgbox "连接数据库失败"
End If


     稍作总结,主要学到的是Mysql的一些相关组件,以及Mysql和ODBC的关系。

     这以后应该是能简化我们关于Mysql的一些操作。

-----------------------------------------------------------------------------------------------------------------

     前面补充了关于ADO这个组件的三个对象。接下来学的是数据库查询值的返回。这个相对简单明了,直接上代码说。

Sql = "select * from trunkinfo"
Set adoRst = Conn.Execute(Sql)
msgbox adoRst.Fields.Item("TRUNKTYPE").Value
Conn.Close
Set Conn = Nothing

     Conn是我们前面连接数据库是建立的组件对象,它有一个Execute函数,可以执行Sql语句,并将执行结果保留在ADO的RecordRst组件,我们再通过一些特定的函数将值取出来作比较。加入有行值,则按如下循环方法将所有值取出:

1.For循环

For i = 1 To adoRst.Fields.Count
       MsgBox adoRst.Fields.Item("name").Value
       adoRst.MoveNext
Next

2.EOF循环

While Not adoRst.EOF
       MsgBox adoRst.Fields.Item("name").Value
       adoRst.MoveNext
Wend

    以上两种方面最主要的地方是函数“MoveNext”。所以按照以上方法,以后我们要检查数据库的信息就很方便的一个函数(等确实需要时我再整理成一个检查数据库的函数)搞定了。

    今天在学习这个的时候,代码跑到Set adoRst = Conn.Execute(Sql)这一句经常出现“ODBC驱动程序不支持所需的属性”,后经检查发现是Sql语句语法错误。


TAG: QTP

 

评分:0

我来说两句

Open Toolbar