songfun 发表于 2008-6-29 18:28:00

QTP中连接MySQL的方法(数据库验证点和ADO连接)

很多朋友对于QTP中连接MYSQL束手无策,其实根本原因是默认的我们的操作系统中ODBC驱动里默认不支持开源的MySQL驱动。
要解决这个问题的方法非常简单,安装一个相关的驱动就能解决问题了。
这里给出这个驱动程序的下载地址: MyODBC-3.51.11-2-win.exe
安装完毕后,到“控制面板--管理工具--数据源ODBC--系统DSN”把它添加进来,步骤见下面截图qtpmysqsl1.JPG到qtpmysqsl5.JPG(我在本机上安装了一个Discuz论坛)。
添加完毕后,就可以开始使用了。
以下给出具体的实现过程
(一)数据库验证点:
见下面截图 qtpmysqsl6.JPG 到 qtpmysqsl9.JPG
(二)ADO连接MySQL数据库的代码:
例子(获取论坛中的帖子主题和内容):Dim Cnn, Rst, strCnn

strCnn = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=discuz;USER=root;Option=3"
Set Cnn = CreateObject("ADODB.connection")
Cnn.Open strCnn
Set Rst = CreateObject("ADODB.Recordset")
Rst.Open "select * from cdb_posts", Cnn
Rst.MoveFirst
While Rst.EOF <> True
    MsgBox Rst.Fields("subject") & Chr(13) & Chr(10) & Rst.Fields("message") & Chr(13) & Chr(10)
    Rst.MoveNext
Wend
Rst.Close
Cnn.Close

Set Rst = Nothing
Set Cnn = Nothing

songfun 发表于 2008-6-29 18:30:09

这里再补充两个网友的ADO代码,供大家参考:Set Conn = CreateObject("ADODB.Connection" )
str="DRIVER={MySQL ODBC 3.51 Driver};SERVER=192.168.1.107;DATABASE=wp_core;user id=root; password=45retret4"
Conn.open str
Set Rs = CreateObject ("ADODB.Recordset" )

select_role_id="select * from `wp_core`.`wp_role` limit 0, 5000"

rs.open select_role_id,conn,1,3

if (not Rs.eof) then
role_id=rs(0)
msgbox(role_id)
rs.fields("id")=8888
rs.update
end if

rs.addnew
rs.fields("id")="8888"
rs.fields("name")="zhouruijun"
msgbox(rs(0))
msgbox(rs(1))

rs.update()


Rs.close
Set Rs = Nothing
Conn.close
Set Conn = NothingSet Conn = CreateObject("ADODB.Connection" )
str="DRIVER={MySQL ODBC 3.51 Driver};SERVER=192.168.1.100;DATABASE=wp_blog;user id=zzz ; password=123456"
Conn.open str
Set Rs = CreateObject ("ADODB.Recordset" )
sql = "select * from `wp_blog`.`blg_webcategory` limit 0, 5000;"
Rs.open sql,conn,1,3
If (not Rs.eof) then
Rs.MoveFirst
MsgBox Rs(0)
MsgBox Rs(1)
MsgBox Rs(2)
MsgBox Rs(3)
end if

Rs.close
Set Rs = Nothing
Conn.close
Set Conn = Nothing

小孩 发表于 2008-6-29 21:15:28

:hug:师傅

flashdna 发表于 2008-6-30 10:57:10

very good!

太及时了,非常感谢!

heqingbluesky 发表于 2008-6-30 14:57:25

Collect it.Thanks

lanshier 发表于 2008-8-19 12:51:37

谢谢老师~~~~~

rovegirl 发表于 2008-9-25 14:02:17

谢谢!老师真好!

pudding_xw 发表于 2008-10-24 15:23:23

非常感谢!!!

redstar 发表于 2008-10-28 15:20:23

--谢谢LZ,修改下连接SYBASE数据库
Dim Cnn, Rst, strCnn

strCnn = "DRIVER={Sybase ASE ODBC Driver};UID=sa;DB=databasename;NA=database_server_ip;FILEDSN=数据源;PWD="
Set Cnn = CreateObject("ADODB.connection")
Cnn.Open strCnn
Set Rst = CreateObject("ADODB.Recordset")
Rst.Open "select * from user_inf", Cnn
Rst.MoveFirst

While Rst.EOF <> True
   msgbox Rst.Fields("user_id") & Chr(13) & Chr(10) & Rst.Fields("user_name") & Chr(13) & Chr(10)
    Rst.MoveNext
Wend

Rst.Close
Cnn.Close

Set Rst = Nothing
Set Cnn = Nothing

htlwx1982 发表于 2008-11-10 15:41:52

太感谢了,都不知道怎么说好了,谢谢!:handshake

chenyunjun169 发表于 2008-11-13 21:03:29

非常感谢!学习!!

lilysun0411 发表于 2009-1-12 11:13:59

学习中!收藏了

natasha01216 发表于 2009-4-1 16:06:27

先做个记号,实验回来再说

完全可以。在配置数据源的时候,端口号忘了写,因为图中没提,要注意下。
其余的完全Step by step

[ 本帖最后由 natasha01216 于 2009-4-1 16:38 编辑 ]

huiguiziran111 发表于 2009-5-6 17:58:22

谢谢好了啊,2

rocky_chen0423 发表于 2009-5-14 09:42:12

我喜欢精华,以后用到QTP的时候就可以来这里取经。
顶!!!!!!崇拜宋老大

wlcym 发表于 2009-9-7 13:12:10

看看学学呵呵

dana09 发表于 2009-10-18 17:44:44

呵呵,先MARK,然后试验去..谢谢各位老师

cp_test 发表于 2010-1-12 11:26:47

顶..........

shaohua1219 发表于 2010-1-13 16:47:01

很需要,谢谢老师!

zhengdongxia 发表于 2010-1-14 20:44:49

呵呵

没什么难的,去查asp连接mysql,一堆
页: [1] 2 3
查看完整版本: QTP中连接MySQL的方法(数据库验证点和ADO连接)