51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3246|回复: 16
打印 上一主题 下一主题

[原创] 【QTP链接Oracle数据库】问题求助

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-3-26 11:09:08 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 lalaine520 于 2012-3-29 14:44 编辑

求助大家,QTP链接数据库时,用创建ODBC嘛?
下面是我的代码,但是跑到“Conn.Open ConnectionString”这行就不动了,跑不下去了。。。我没写DB链接成功的情况。。。都跑不下去,请问这么写对吗?请各位帮忙,谢谢了~
  1. Dim Conn
  2.      Set Conn=createobject ("ADODB.Connection")
  3.      Conn.ConnectionString="DSN=dd;DATABASE=bjtdb;PWD=oracle;SERVER=10.12.30.118;UID=rob"
  4.      Conn.Open ConnectionString
  5.         If  Conn.State=0 Then
  6.             msgbox("!!!!")
  7.             Reporter.ReportEvent micFail,"testing","DB连接失败"
  8.         End If
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

17#
 楼主| 发表于 2012-4-18 15:06:02 | 只看该作者
谢谢各位,虽然我知道是Data Source的问题 但还没有解决。。。
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2012-4-17 17:21:09 | 只看该作者
回复 14# lalaine520

Data Source的问题
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2012-4-6 16:32:40 | 只看该作者
本帖最后由 026300 于 2012-4-6 16:34 编辑

我用的是mysql,说说我的做法:首先要安装ODBC,然后添加系统DSN,并测试成功,QTP中使用mysql的代码:
Dim Conn 'as Adodb.Connection
Dim Rst '记录结果
Set Conn = CreateObject("ADODB.Connection")
Conn.ConnectionString="DATABASE=yourDatabasename;DSN=yourDSN;OPTION=0;WD=passwordORT=yourPort;SERVER=IP address;UID=username"
Conn.Open

Set Rst=CreateObject("Adodb.Recordset")
Rst.Open "select * from database.table",Conn
Rst.movefirst
Rst.Close
Conn.Close
Set Rst=Nothing
Set Conn=Nothing

ps 语句中那个笑脸不是我加的
回复 支持 反对

使用道具 举报

该用户从未签到

14#
 楼主| 发表于 2012-4-5 10:00:32 | 只看该作者
回复 13# wwoa

按照你的写了:
  1. Dim Conn
  2. Set Conn=createobject ("ADODB.Connection")
  3. Conn.ConnectionString="provider=OraOLEDB.Oracle.1;persist Security Info=False;User ID=rob;password=oracle;Data Source=ORCL"
  4. Conn.Open ConnectionString
  5. If  Conn.State=0 Then
  6. msgbox("!!!!")
  7. Reporter.ReportEvent micFail,"testing","DB连接失败"
  8. End If
复制代码
但是失败了:报异常:
ORA-12154: TNS: 无法处理服务名
Line (4): "Conn.Open ConnectionString".
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2012-4-1 10:38:47 | 只看该作者
Dim Conn
Set Conn=createobject ("ADODB.Connection")
conn.connectionstring="rovider=OraOLEDB.Oracle.1ersist Security Info=False;User ID=system;password=wwoa;Data Source=ORCL"
Conn.Open ConnectionString
If  Conn.State=0 Then
msgbox("!!!!")
Reporter.ReportEvent micFail,"testing","DB连接失败"
End If

你的Conn.ConnectionString写的有问题吧
我把你的改成上面的就可以过了
你自己看着改吧
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2012-3-31 17:15:31 | 只看该作者
米解决,自己继续顶。。。。。。。。。
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2012-3-28 15:52:39 | 只看该作者
用oracle不用写;
我的连接代码,给你参考下:
EG:简单代码
Dim Con     //定义变量
Dim rs      //定义 ...
ZhuCrystal 发表于 2012-3-28 15:25


那请问DATABASE设置的是在ODBC中建立的数据源么
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2012-3-28 15:25:44 | 只看该作者
用oracle不用写;
我的连接代码,给你参考下:
EG:简单代码
Dim Con     //定义变量
Dim rs      //定义变量
Dim conset  //定义变量
conset="rovider=SQLOLEDB.1ersist Security Info=False;User ID=sa;password=123456;Initial Catalog=LMS2.0;Data Source=YANJIN"  //将获得的链接字符串赋值到定义的变量conset中
Set Con=CreateObject("ADODB.Connection")  //生成数据库连接对象
Con.Open conset  //打开数据库
Set rs=CreateObject("ADODB.Recordset")    //生成记录集对象
rs.Open "select userName  from dbo.tbUsers",Con  //书写SQL语句
//条件判断(有读到数据提示Pass,反之提示failed)
If con.State=0 Then         
msgbox"failed"
else
msgbox"pass"
End If
rs.MoveFirst  //将焦点定在第一行
con.close   //关闭数据库连接
Set con=nothing   //清空连接对象
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2012-3-28 14:55:31 | 只看该作者
还有 我用的ORACLE 也得写“Provider=SQLOLEDB”这个么
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2012-3-28 14:53:11 | 只看该作者
本帖最后由 lalaine520 于 2012-3-28 14:54 编辑

谢谢二位!但是加了PORT 说“链接字符串属性无效”;不加port说“SQL SERVER”不存在或拒绝访问

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2012-3-28 10:16:26 | 只看该作者
1.首先要装数据源驱动 并测试连接DB是否成功
2.我目前用的连接串:
strCn="Driver={MySQL ODBC 5.1 Driver};server="&strDBIP&";database=DBnameort=3306;User=rootassword=root;charset=GBK;"
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2012-3-28 10:16:12 | 只看该作者
1.首先要装数据源驱动 并测试连接DB是否成功
2.我目前用的连接串:
strCn="Driver={MySQL ODBC 5.1 Driver};server="&strDBIP&";database=DBnameort=3306;User=rootassword=root;charset=GBK;"
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2012-3-27 18:02:48 | 只看该作者
本帖最后由 luchao215225 于 2012-3-27 18:03 编辑

Set con=createobject("adodb.connection")
Set rs=createobject ("adodb.recordset")
con.Open("Provider=SQLOLEDB; Data Source=192.168.1.8; Initial Catalog=BBDB; User ID=sa; Password=sa;")

我连的SQL数据库.你参考下
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2012-3-27 09:32:28 | 只看该作者
没人来嘛??自己顶。。。。。。。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2012-3-26 13:28:46 | 只看该作者
本帖最后由 lalaine520 于 2012-3-26 13:30 编辑

回复 2# luchao215225
我+了那句话,但是报错了。。求解啊。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

2#
发表于 2012-3-26 11:44:19 | 只看该作者
链接中缺少Provider=SQLOLEDB; 数据库类型
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-24 04:00 , Processed in 0.093460 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表