首先,因为群里很多朋友说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 '释放对象
这些都是后话了。