设为首页 加入收藏

TOP

针对QTP连接oracle数据库问题总结
2015-11-21 01:56:59 来源: 作者: 【 】 浏览:0
Tags:针对 QTP 连接 oracle 数据库 问题 总结

首先,因为群里很多朋友说QTP连接oracle有点麻烦,我针对于连接oracle做一个完整的教程,希望需要学习的朋友都可以来看一下;具体方法如下:

1、无论是什么语言,连接oracle客户端是不可少的,这个是没办法省的;我用的是10g_win32_client;如果觉得老,朋友们可以用新版本的;

解压-安装-着方面无非就是下一步操作,这边我们不讲,配置可能有些初学者不会,我这边从配置开始讲;

\

\

\

\

\

\

\

\

这边图片大概的描述了一下步骤,如果还是不会,可以百度上找如果配置oracle客户端,里面比较详细

2、配置 数据源(ODBC)(针对win7的配置)

①-打开控制面板-系统和安全-管理工具-数据源(ODBC)

添加用户数据源

\

选择oracle驱动

\

填写对应信息

\

测试是否连接成功

\ \

这样odbc就算配置完成了;

3、开始连接数据库

获取oracle的连接串的方法,在本地新建一个.txt文件,修改扩展名名*.udl,双击*.udl文件,打开数据库链接属性,定位到“提供程序”选显卡,选中 oracle的连接 oracle provider for OLE DB,点击下一步,输入数据源,数据库用户名以及密码,点击测试连接,然后用UE或记事本打开*.udl文件,oracle的连接串已经生成了,

如图:\

\\

这样就算配置成功了,然后用文本打开oracle.udl,

\

Provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=BPMUSER2;Data Source=CEDATA

?

加密码:用;号分开:Provider=OraOLEDB.Oracle.1;Persist?Security?Info=False;User?ID=BPMUSER2;;Password=BPMUSER2;Data?Source=CEDATA

?

然后写qtp测试

'———————————————————————————————————————————  
????'名称:oracle_nextAPPROVEID  
????'作用:数据库中查询出下一步审批人  
????'参数:FormID  
????'返回:下一步审批人  
????'使用:QTP.oracle_nextAPPROVEID("-")  
????Function?oracle_nextAPPROVEID(FormID)  
???????  
????????Dim?Cnn??'定义一个数据库连接串  
????????Dim?Rs  
????????Dim?sql  
????????Dim?uid  
????????Set?Cnn?=?CreateObject("ADODB.Connection")  
????????Cnn.Open?="Provider=OraOLEDB.Oracle.1;Persist?Security?Info=False;User?ID=BPMUSER2;;Password=BPMUSER2;Data?Source=CEDATA"  
????????  
????????If?Cnn.State?=?0?Then??????'判断数据库连接是否成功  
????????????Report.Debug("[Cnn.State]?Cnn.State?=?"?&?Cnn.State)  
????????????Report.FunctionOut("[Cnn.State]?Cnn.State?=?"?&?Cnn.State)  
????????????Exit?Function  
????????????End?If  
  
????????If?Cnn.State<>?0??Then????  
????????Report.Debug("[Cnn.State]?Cnn.State?=?"?&?Cnn.State)???  
????????Set?Rs=CreateObject("ADODB.Recordset")????'生成记录集对象  
????????'FormID=?chr(34)&FormID&chr(34)?  
????????Report.Debug("[FormID]?FormID?=?"?&?FormID)???  
????????sql?="select?*?from(select?b.ID,a.PROCESSID,APPROVEID?from?FORM_MASTER_INFO?a?inner?join?FORM_HISTORY_INFO?b?on?a.PROCESSID=b.PROCESSID?and?a.FORMRESULT='N'?WHERE?a.PROCESSID=?'"&FormID&"'??order?by?b.ID?desc)?where?rownum=1"  
?????????Report.Debug("[sql]?sql?=?"?&?sql)  
?????????On?Error?Resume?next?  
????????Rs.Open?sql?,Cnn,1,3??'执行sql语句,记录可以自由移动,单数记录处于只读模式????????  
????????uid=Rs("APPROVEID")?'取得字段为custid的记录,游标定义在第一行,所以取得的是该字段所在行的第一行数据  
????????Report.Debug("[uid]?uid?=?"?&?uid)  
????????oracle_nextAPPROVEID?="("&?uid&")"????????????  
????????'msgbox?uid  
????????End?If  
????End?Function  

调用一下,就可以完成了;做的完善点需要关闭连接等等

RS.close '关闭记录集
Set RS=nothing '释放对象
Cnn.Close '关闭数据连接
Set Cnn=nothing '释放对象

这些都是后话了。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇rmanconvert迁移win64位oracle到l.. 下一篇oracle中使用物化视图实现表的同步

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: