针对QTP连接oracle数据库问题总结

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/laijingkang/article/details/47291493

           首先,因为群里很多朋友说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 '释放对象

这些都是后话了。


 

展开阅读全文

JDBC连接Oracle数据库问题

08-28

[img=http://][/img]我在使用JDBC连接数据库,调试时出现如上所示rn[code=java]public ArrayList> getList(String paramString) rn ArrayList> localArrayList = new ArrayList>();rn try rn this.conn = getConnection();rn this.stmt = this.conn.createStatement();rnrn ResultSet localResultSet = this.stmt.executeQuery(paramString);rn ResultSetMetaData localResultSetMetaData = localResultSetrn .getMetaData();rn int i = localResultSetMetaData.getColumnCount();rn while (localResultSet.next()) rn Hashtable localHashtable = new Hashtable();rn for (int j = 1; j <= i; ++j) rn String str1 = localResultSetMetaData.getColumnName(j);rn String str2 = localResultSet.getString(j);rn if (str2 == null)rn str2 = "";rn localHashtable.put(str1, str2);rn rn localArrayList.add(localHashtable);rn rn localResultSet.close();rn this.stmt.close();rn this.conn.close();rn catch (SQLException localSQLException) rn try rn this.stmt.close();rn this.conn.close();rn catch (Exception localException) rn rn rn return localArrayList;rn [/code],就是在this.stmt = this.conn.createStatement();这句话处出错,调用数据库连接的页面代码如下:rn[code=text]<%@page language="java" contentType="text/html;charset=gb2312"%>rnrnrnrnrn rn Cookie版 购物车rn rn rn rn rn > rs = new java.util.ArrayList>();rn rs = db.getList("select PRID,NAME,CONTENT,PIC,XID,DID,BPRICE,SPRICE from a2009_shuhua_product");rn rn if (rs != null) rn java.util.Hashtable hash = new java.util.Hashtable();rn for (int i = 0; i < rs.size(); i++) rn hash = rs.get(i);rn String PRID = str.notEmpty(hash.get("PRID"));rn String SPRICE = str.notEmpty(hash.get("SPRICE"));rn String BPRICE = str.notEmpty(hash.get("BPRICE"));rn String NAME = str.notEmpty(hash.get("NAME"));rn String PIC = str.notEmpty(hash.get("PIC"));rn %>rn <%rn if (i == 0) rn %>rn rn rn rn <%rn rn java.util.ArrayList rn <%rn rn %>rn <%rn if (i != 0 && i % 4 == 0) rn %>rn rn rn <%rn rn %>rn rn rn rn rn rn rn rn rn rn rn rn rn <%=NAME%>rn rn rn <%=SPRICE%>rn rn <%=BPRICE%> rn rn rn rn rn rn rn rn rn rn <%rn if (i == 0 && i % 4 != 0) rn %>rn rn rn rn <%rn rn %>rn <%rn hash = null;rn rn hash = null;rn rn rs = null;rn %>rn rn rn rn rn rn rn rn rn rn rn rn rn rn rnrnrn rn rn rn[/code],大家有没有遇见过这种情况?大侠们,我是刚刚学习Java Web开发,希望大家可以帮我一下。 论坛

没有更多推荐了,返回首页