【QTP专题】连接数据库
时间:2022-03-10 17:03
-
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