您的位置:首页 > 博客中心 > 数据库 >

【QTP专题】连接数据库

时间:2022-03-10 17:03

  1. Dim objRecordSet ‘RecordSet对象实例
    Dim sqlStr ‘sql查询语句
    
    Set objRecordSet = CreateObject("ADODB.Recordset") ‘建立Recordset对象的实例
    objRecordSet.Open sqlStr,objConnection ‘执行查询
    
    If (objRecordSet.BOF or objRecordSet.EOF) Then  ‘查询不存在任何记录
      executeSQL = NULL ‘返回NULL
    Else ‘存在查询记录
      ‘使用 GetRows 方法将记录从 Recordset 复制到二维数组中。第一个下标标识字段,第二个则标识记录号。
      executeSQL = objRecordSet.GetRows() ‘返回查询结果的二维数组
    End If

     

     

    以下代码将数据库各个常用功能封装成函数,已测试通过,仅供参考:

    Option Explicit
    ‘公共对象
    Dim objConnection    ‘Connection对象实例 
    Dim strConnString    ‘连接字符串 
    Dim objRecordSet    ‘RecordSet对象实例  
    
    
    ‘==================================================================
    ‘ 函数功能:连接到数据库
    ‘ 参数说明:
    ‘        1.strDBType(数据库类型:支持SQL SERVER、ORACEL、MYSQL、DB2、SYBASE) 
    ‘        2.strDBName(数据库名) 
    ‘        3.strUID(用户名) 
    ‘        4.strPWD(密码) 
    ‘        5.strIP(服务器名或IP地址) 
    ‘ 返回结果:无 
    ‘ 调用方法:ConnectDB(strDBType, strDBName, strUID, strPWD) 
    ‘==================================================================
    Sub connectDB(strDBType, strDBName, strUID, strPWD,strIP) 
        Select Case UCase(Trim(strDBType)) ‘不同的数据库类型连接数据库的字符串不同
             Case "SQL SERVER" 
                strConnString="Provider=SQLOLEDB; Data Source="& strIP &"; Initial Catalog="& strDBName &"; User ID="& strUID &"; Password="&strPWD        
            Case "ORACLE" 
                strConnString="Provider=OraOLEDB.Oracle; Data Source="& strDBName &"; User ID="& strUID &"; Password="& strPWD  
            Case "MYSQL" 
                strConnString="Driver={MySQL ODBC 5.1 Driver}; Server="& strIP &"; Database="& strDBName &"; User="&strUID&"; Password="& strPWD 
           Case Else 
                Reporter.ReportEvent micFail,"数据库类型错误" ,"目前支持的数据库类型有:SQL SERVER、ORACEL、MYSQL、DB2、SYBASE" 
        End Select 
        Set objConnection = CreateObject("ADODB.CONNECTION")  ‘建立Connection对象的实例 
        objConnection.Open strConnString  ‘用Open方法建立与数据库连接 
    End Sub 
    
    
    ‘==================================================================
    ‘ 函数功能:关闭数据库连接
    ‘ 参数说明:无 
    ‘ 返回结果:无 
    ‘ 调用方法:closeDB() 
    ‘==================================================================
    Sub closeDB() 
        objRecordSet.Close 
        objConnection.Close 
        Set objRecordSet = Nothing 
        Set objConnection = Nothing 
    End Sub 
    
    ‘==================================================================
    ‘ 函数功能:执行SQL语句
    ‘ 参数说明:sqlStr(SQL语句 )
    ‘ 返回结果:返回一个存放查询结果的二维数组
    ‘ 调用方法:results = executeSQL(sqlStr)
    ‘==================================================================
    Function executeSQL (sqlStr)
        Call connectDB(gDBType,gDBName,gUID,gPWD,gIP)‘ 连接到数据库,函数的实参在配置文件中定义
        Set objRecordSet = CreateObject("ADODB.Recordset") ‘建立Recordset对象的实例 
        objRecordSet.Open sqlStr,objConnection
        If (objRecordSet.BOF or objRecordSet.EOF) Then  ‘查询不存在任何记录
            Reporter.ReportEvent micDone,"查询不存在任何记录","数据库中查询不存在任何记录!"
            executeSQL = NULL ‘返回NULL
        Else ‘存在查询记录
            ‘使用 GetRows 方法将记录从 Recordset 复制到二维数组中。第一个下标标识字段,第二个则标识记录号。
            executeSQL = objRecordSet.GetRows() ‘返回查询结果的二维数组
        End If
        Call closeDB() ‘关闭数据库连接
    End Function

     

     

     

     

    【QTP专题】连接数据库,布布扣,bubuko.com

热门排行

今日推荐

热门手游