51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3987|回复: 11
打印 上一主题 下一主题

[原创] QTP 连接Oracle数据库,出现问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-2-1 16:30:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题是,连接不上数据库。还请大家尽量帮忙。

运行我的测试脚本,报错弹出提示信息: OraOLEDBpus.dll: The specified module could not be found

这是我的脚本,大家给分析一下

Public Function DBOperation(StrConnectionString,StrSql)
        Dim cnnTest
        Dim id
        Set cnnTest = createobject("AdoDb.Connection")
        Set rs = createobject("AdoDb.RecordSet")
        cnnTest.ConnectionString = StrConnectionString
        cnnTest.Open  
       
        cnnTest.BeginTrans
        Set rs = cnnTest.Execute( StrSql)
        id = rs("DICR_REQUEST_ID")
        messagebox(id)
        cnnTest.CommitTrans
       
     'cnntest.RollbackTrans
        Set cnnTest = Nothing
         DBOperation = id
End Function

'3927
Dim  conn, sql
  conn = "rovider=OraOLEDB.OracleLSQLRSet=1assword=123456 ;User   ID=rocis;Data   Source=ro"
  sql = "select DICR_REQUEST_ID from DICR_REQUEST where DICR_REF_NBR = 200607-7101-007"


Call DBOperation(conn, sql)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2008-2-1 17:47:00 | 只看该作者
怎么没有人回答呢??
自己顶顶,别沉了~~~
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-2-2 09:40:22 | 只看该作者
我帮不了你,来帮你顶顶
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2008-2-2 10:39:06 | 只看该作者


[ 本帖最后由 konglingzhen 于 2008-2-2 10:40 编辑 ]

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-2-2 23:38:42 | 只看该作者
这是oracle 数据库的问题。
1.确保在oracle安装目录下有 OraOLEDbpus.dll 这个文件。
2.如果oracle下有这个文件,那么将oracle 安装目录下bin文件路径加到环境变量里面。

你的脚本一点问题都没有,完全是oracle配置不当。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2008-2-3 10:25:14 | 只看该作者
我是这样连接数据库的:
' *********************************************************************************************
' 函数说明:传入相应的sql和列的名称 ,取到相应列的值;
' 参数说明:
'                                  (1)sql:查询语句;
'                               (2)colname:取得列的名称;
' 返回结果:
'          (1):取到列的值  ;
' 调用方法:
'           var= DB (sql,colname)
'修改时间:2008年1月22日17:31:31
' *********************************************************************************************
Public  Function DB (sql,colname)
Dim res,cmd
Set res=createobject("adodb.recordset")
Set cmd=createobject("adodb.command")
Cmd.activeconnection="Driver={Microsoft ODBC for Oracle};Server=oradb10;Uid=bpm611_testwd=bpmtest;"
Cmd.CommandType = 1
'msgbox sql
Cmd.CommandText = sql
Set res = Cmd.Execute()
'msgbox  res(colname)
DB=res(colname)
res.close
Set res=nothing
Set Cmd.activeconnection=nothing
Set cmd=nothing
End Function
需要两个前提,1、安装Oracle的客户端,然后配置一个本地net服务名2、在控制面板->管理工具->数据源(ODBC)中新建一个Microsoft ODBC for Oracle数据源,服务的名称就是Oracle配置的本地net服务名。(注意:新建后检查D:\oracle\product\10.2.0\client_1\NETWORK\ADMIN目录下tnsnames.ora,查看建的net服务名就应该是刚新建的名称)

[ 本帖最后由 sunqiang1024 于 2008-2-3 11:59 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2008-2-3 11:41:10 | 只看该作者
to:sunqiang1024
看到你的Cmd.activeconnection =="Driver={Microsoft ODBC for Oracle};Server=oradb10;Uid=bpm611_test;passwd=bpmtest;"
Server 值是什么??
而且好像没有指定数据源呢~~
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2008-2-3 11:45:25 | 只看该作者
server就是数据源的名字
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2008-2-3 11:56:46 | 只看该作者
哦,不是,我写的是sevice name,现在好用了。。。
问题和还有一个~~

'msgbox  res(colname)
DB=res(colname) 报错~~~
不知道是为什么。。
因为我的res,其实查询出来应该只有一个值~!~
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2008-2-3 12:00:55 | 只看该作者
报什么错啊,发个错误信息啊 colname,这个变量是你要取的列的名字
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2009-1-2 10:12:01 | 只看该作者
我也是
DB=res(colname)   报错.
错误信息为:
"Item cannot be found in the collection corresponding to the requested name or ordinal"

我已确认 colname 是我数据库表列的名字("SEQENCE_ID")

Could you please help me? Thanks.
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2009-1-2 23:54:47 | 只看该作者
Problem resolved. It looks like you can not retrieve only one value. Thanks.
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-16 14:53 , Processed in 0.084820 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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