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)‘==================================================================
SubconnectDB(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="&strPWDCase "ORACLE"strConnString="Provider=OraOLEDB.Oracle; Data Source="& strDBName &"; User ID="& strUID &"; Password="&strPWDCase "MYSQL"strConnString="Driver={MySQL ODBC 5.1 Driver}; Server="& strIP &"; Database="& strDBName &"; User="&strUID&"; Password="&strPWDCase ElseReporter.ReportEvent micFail,"数据库类型错误" ,"目前支持的数据库类型有:SQL SERVER、ORACEL、MYSQL、DB2、SYBASE"
End Select
Set objConnection = CreateObject("ADODB.CONNECTION") ‘建立Connection对象的实例
objConnection.Open strConnString ‘用Open方法建立与数据库连接
End Sub
‘==================================================================‘函数功能:关闭数据库连接‘参数说明:无‘返回结果:无‘调用方法:closeDB()‘==================================================================
SubcloseDB()
objRecordSet.Close
objConnection.CloseSet objRecordSet = Nothing
Set objConnection = Nothing
End Sub
‘==================================================================‘函数功能:执行SQL语句‘参数说明:sqlStr(SQL语句 )‘返回结果:返回一个存放查询结果的二维数组‘调用方法:results = executeSQL(sqlStr)‘==================================================================
FunctionexecuteSQL (sqlStr)Call connectDB(gDBType,gDBName,gUID,gPWD,gIP)‘连接到数据库,函数的实参在配置文件中定义
Set objRecordSet = CreateObject("ADODB.Recordset") ‘建立Recordset对象的实例
objRecordSet.Open sqlStr,objConnectionIf (objRecordSet.BOF or objRecordSet.EOF) Then ‘查询不存在任何记录
Reporter.ReportEvent micDone,"查询不存在任何记录","数据库中查询不存在任何记录!"executeSQL= NULL ‘返回NULL
Else ‘存在查询记录
‘使用 GetRows 方法将记录从 Recordset 复制到二维数组中。第一个下标标识字段,第二个则标识记录号。
executeSQL = objRecordSet.GetRows() ‘返回查询结果的二维数组
End If
Call closeDB() ‘关闭数据库连接
End Function