程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> 針對QTP連接oracle數據庫問題總結

針對QTP連接oracle數據庫問題總結

編輯:Oracle教程

針對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 '釋放對象

這些都是後話了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved