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