首先,因為群裡很多朋友說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 '釋放對象
這些都是後話了。