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 这里再补充两个网友的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 :hug:师傅
very good!
太及时了,非常感谢! Collect it.Thanks 谢谢老师~~~~~ 谢谢!老师真好! 非常感谢!!! --谢谢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 太感谢了,都不知道怎么说好了,谢谢!:handshake 非常感谢!学习!! 学习中!收藏了 先做个记号,实验回来再说
完全可以。在配置数据源的时候,端口号忘了写,因为图中没提,要注意下。
其余的完全Step by step
[ 本帖最后由 natasha01216 于 2009-4-1 16:38 编辑 ] 谢谢好了啊,2 我喜欢精华,以后用到QTP的时候就可以来这里取经。
顶!!!!!!崇拜宋老大 看看学学呵呵 呵呵,先MARK,然后试验去..谢谢各位老师 顶.......... 很需要,谢谢老师!