`

VBS连接数据库操作

    博客分类:
  • VBS
阅读更多
'转别人写的一份公共函数:)

' DATABASE公用函数
'
'###########################################################################################################
'###########################################################################################################

Dim objConnection                          'CONNECTION对象实例
Dim objRecordSet                                   'RECORDSET对象实例       
Dim objCommand                                '命令对象实例
Dim strConnectionString                        '连接字符串

' ********************************************************************
' 函数说明:连接数据库;
' 参数说明:(1)strDBType(数据库类型:如ORACEL;DB2;SQL;ACCESS)
'           (2)strDBAlias(数据库别名)
'           (3)strUID(用户名)
'           (4)strPWD(密码)
'           (5)strIP(数据库IP地址:仅SQL SERVER 使用)
'           (6)strLocalHostName(本地主机名:仅SQL SERVER 使用)
'           (7)strDataSource(数据源:仅ACCESS使用;如d:\yysc.mdb)
' 返回结果:无
' 调用方法: ConnectDatabase(strDBType, strDBAlias, strUID, strPWD, strIP, strLocalHostName, strDataSource)
' ********************************************************************
Sub ConnectDatabase(strDBType, strDBAlias, strUID, strPWD, strIP, strLocalHostName, strDataSource)
    Set objConnection = CreateObject("ADODB.CONNECTION"                '1 - 建立CONNECTION对象的实例
   
    Select Case UCase(Trim(strDBType))
        Case "ORACLE"
            strConnectionString = "Driver={Microsoft ODBC for Oracle};Server=" & strDBAlias & ";Uid="_
                & strUID & ";Pwd=" & strPWD & ";"                                '2 - 建立连接字符串
            objConnection.Open strConnectionString                                '3 - 用Open 方法建立与数据库连接
        Case "DB2"
            strConnectionString = "Driver={IBM DB2 ODBC DRIVER};DBALIAS=" & strDBAlias & ";Uid="_
                & strUID & ";Pwd=" & strPWD & ";"                               
            objConnection.Open strConnectionString                               
        Case "SQL"
             strConnectionString = "DRIVER=SQL Server; SERVER=" & strIP & "; UID=" & strUID & "; PWD="_
                 & strPWD & "; APP=Microsoft Office 2003;WSID=" & strLocalHostName & "; DATABASE=" & strDBAlias & ";"
            objConnection.Open strConnectionString                                           
        Case "ACCESS"
            strConnectionString = "provider=microsoft.jet.oledb.4.0;data source=" & strDataSource &_
                ";Jet OLEDBatabase Password=" & strPWD & ";"
            objConnection.Open strConnectionString                                                 
        Case Else
            MsgBox "输入的数据库类型格式有误" & vbCrLf & "支持的数据库类型格式:ORACLE;DB2;SQL;ACCESS;EXCEL"
    End Select
   
    If (objConnection.State = 0) Then
        MsgBox "连接数据库失败!"
    End If
   
End Sub


' ********************************************************************
' 函数说明:查询数据库(查询单列);
' 参数说明:  (1)strSql:SQL语句
'           (2)strFieldName:字段名
'           (3)str_Array_QueryResult:数组名(用来返回单列查询结果)
' 返回结果:  intArrayLength:查询数据库返回的记录行数
'           str_Array_QueryResult:数组名(用来返回单列查询结果)
' 调用方法: intArrayLength = QueryDatabase(strSql, strFieldName, str_Array_QueryResult)
' ********************************************************************
Function QueryDatabase(strSql, strFieldName, str_Array_QueryResult)
    Dim intArrayLength                                                                                     '数组长度
     Dim i
   
    i = 0  
    str_Array_QueryResult = Array()                                '重新初始化数组为一个空数组
   
    Set objRecordSet = CreateObject("ADODB.RECORDSET"                '4 - 建立RECORDSET对象实例
    Set objCommand = CreateObject("ADODB.COMMAND"              '5 - 建立COMMAND对象实例
    objCommand.ActiveConnection = objConnection
    objCommand.CommandText = strSql
        objRecordSet.CursorLocation = 3
        objRecordSet.Open objCommand                            '6 - 执行SQL语句,将结果保存在RECORDSET对象实例中
   
    intArrayLength = objRecordSet.RecordCount                  '将查询结果的行数作为数组的长度
   
    If intArrayLength > 0 Then
                ReDim str_Array_QueryResult(intArrayLength-1)
               
                Do While NOT objRecordSet.EOF                                                '将数据库查询的列值赋值给数组            
                    str_Array_QueryResult(i) = objRecordSet(strFieldName)
                        'Debug.WriteLine str_Array_QueryResult(i)
                        objRecordSet.MoveNext
                        i = i + 1
                Loop
'        Else
                'ReDim str_Array_QueryResult(0)      
                'str_Array_QueryResult(0) = ""    
    End If
   
    QueryDatabase = intArrayLength
End Function

' ********************************************************************
' 函数说明:更新数据库;包括INSERT、DELETE 和 UPDATE操作
' 参数说明:(1)strSql:SQL语句
' 返回结果:无
' 调用方法: UpdateDatabase(strSql)
' ********************************************************************
Sub UpdateDatabase(strSql)
        Dim objCommand
        Dim objField       
       
        Set objCommand = CreateObject("ADODB.COMMAND")
        Set objRecordSet = CreateObject("ADODB.RECORDSET")
        objCommand.CommandText = strSql
        objCommand.ActiveConnection = objConnection
        Set objRecordSet = objCommand.Execute
       
'        Do Until objRecordSet.EOF
       
'                For Each objField In objRecordSet.Fields
'                        Debug.Write objField.Name & ": " & objField.Value & "   "
'                Next
               
'                objRecordSet.MoveNext
'                Debug.WriteLine
'        Loop       
       
        Set objCommand = Nothing
        Set objRecordSet = Nothing
               
End Sub





' ********************************************************************
' 函数说明:返回符合查询结果的列的长度
' 参数说明:(1)strSql:SQL语句
' 返回结果:返回符合查询结果的列的长度
' 调用方法: MaxLength = GetLenOfField(strSql)
' ********************************************************************
Function GetLenOfField(strSql)
    '如果SQL语句为空,则默认返回的列长度为0,结束函数;否则返回列的实际长度
    If strSql = "" Then
        GetLenOfField  = 0
                Exit Function
    Else
            Set objRecordSet = CreateObject("ADODB.RECORDSET")                        '4 - 建立RECORDSET对象实例
            Set objCommand = CreateObject("ADODB.COMMAND")              '5 - 建立COMMAND对象实例
            objCommand.ActiveConnection = objConnection
            objCommand.CommandText = strSql
                objRecordSet.CursorLocation = 3
                objRecordSet.Open objCommand                                '6 - 执行SQL语句,将结果保存在RECORDSET对象实例中
           
            GetLenOfField = objRecordSet.RecordCount                              '返回符合查询结果的列的长度
       
                Set objCommand = Nothing       
                Set objRecordSet = Nothing
        End If
End Function


' ********************************************************************
' 函数说明:关闭数据库连接;
' 参数说明:无
' 返回结果:无
' 调用方法: CloseDatabase()
' ********************************************************************
Sub CloseDatabase()
    objRecordSet.Close
    objConnection.Close
   
    Set objCommand = Nothing
    Set objRecordSet = Nothing
    Set objConnection = Nothing
End Sub
分享到:
评论

相关推荐

    VBS连接EXCEL及其操作

    VBS连接和操作EXCEL (一) 使用动态创建的方法 首先创建 Excel 对象,使用ComObj: oExcel = CreateObject( "Excel.Application" ) 1) 显示当前窗口: oExcel.Visible = True 2) 更改 Excel 标题栏: oExcel.Caption ...

    在wincc中通过vbs操作SQL

    在项目中需要在一定条件满足时,保存一些数据到数据库中,并可根据条件查询。考虑到WinCC6.2以后采用的就是SQL Server2005数据库,所以直接利用该数据库即可,通过SQL Server Management Studio(SSMS)可以创建自己...

    asp连接数据库代码实例

    连接数据库代码实例 1,连接数据库代码 文件名称 conn.asp 所有访问数据库的文件都调用此文件<!--#include file=\"Conn.asp\"--> db=\"data/data.mdb\" \'数据库存放目录 on error resume next set conn=server...

    vbs简明教程

    ◎Vbs脚本编程简明教程之八—FSO中文件夹的基本操作 ◎Vbs脚本编程简明教程之九—妙用SendKeys简化重复操作1 ◎Vbs脚本编程简明教程之九—妙用SendKeys简化重复操作2 ◎Vbs脚本编程简明教程之九—妙用Send...

    QTP常用技巧应用与代码实践

    4、QTP连接数据库 5、QuickTest Plus小工具,大作用 6、基础知识 7、对象库和对象属性 8、文件、参数表和ACTION 9、数据库链接和检查 10、其它运行时问题 11、QTP中常用的VBS函数 12、读取LOG文件代码 13、对global...

    ASP新闻发布系统Ok3w v4.1.rar

    二、数据库在线压缩、备份; 三、友情链接管理; 四、站点介绍类文章任意添加; 五、新闻文章管理: 5.1、无级限分类; 5.2、加入回收站功能,减少无意删除的烦恼; 5.3、自由设置新闻开关、推荐与否; 5.4、...

    蓝丽留言版

    appath("book.mdb"),和数据库连接语句(默认为连接新版Access数据库用句),当然这些你 都可以自己设置啦 经过您半个小时的测试,大约对本系统结构已经很熟悉了,你可以根据须要更改界面,升级修改 程序,满意后传...

    WINCC 技术总结

    12. “激活后历史曲线会显示没有数据库连接”问题 5 13.组态登陆对话框 5 14.报警控件的使用 6 15.归档的操作 7 16.动态向导的的系统函数中的功能: 12 17.询问对话框及返回值 12 18. 日历控件的使用 13 19. I/O域...

    ASP新闻发布系统Ok3w v4.0 build 090617.rar

    二、数据库在线压缩、备份; 三、友情链接管理; 四、站点介绍类文章任意添加; 五、新闻文章管理: 5.1、无级限分类; 5.2、加入回收站功能,减少无意删除的烦恼; 5.3、自由设置新闻开关、推荐与否; 5.4、...

    ASP新闻发布系统Ok3w v4.4.rar

    二、数据库在线压缩、备份; 三、友情链接管理; 四、站点介绍类文章任意添加; 五、新闻文章管理: 5.1、无级限分类; 5.2、加入回收站功能,减少无意删除的烦恼; 5.3、自由设置新闻开关、推荐与否; 5.4、...

    testnew.

    二、数据库在线压缩、备份; 三、友情链接管理; 四、站点介绍类文章任意添加; 五、新闻文章管理: 5.1、无级限分类; 5.2、加入回收站功能,减少无意删除的烦恼; 5.3、自由设置新闻开关、推荐与否; 5.4、集成...

    ASP新闻发布系统Ok3w v4.0.rar

    二、数据库在线压缩、备份; 三、友情链接管理; 四、站点介绍类文章任意添加; 五、新闻文章管理: 5.1、无级限分类; 5.2、加入回收站功能,减少无意删除的烦恼; 5.3、自由设置新闻开关、推荐与否; 5.4、...

    精通QTP——自动化测试技术领航

    3.3 数据库操作(ADO) 277 3.3.1 何时使用ADO数据验证 277 3.3.2 构建数据库连接字符串的两种方式 278 3.3.3 数据库查询 284 3.3.4 数据库修改 288 3.3.5 自定义动态数据库验证函数 291 3.3.6 总结 295 3.4 Excel—...

    ASP新闻发布系统Ok3w v4.3.rar

    二、数据库在线压缩、备份; 三、友情链接管理; 四、站点介绍类文章任意添加; 五、新闻文章管理: 5.1、无级限分类; 5.2、加入回收站功能,减少无意删除的烦恼; 5.3、自由设置新闻开关、推荐与否; 5.4、...

    多功能脚本虚拟机

    现在已经可以捕捉监听出错 增加了网络客户端连接时出错的捕获,连接超时为15秒 <br/> 超级脚本虚拟机简介: <br/>尖科超级脚本虚拟机是一个功能强大、基于微软Windows系统操作系统的脚本虚拟机...

    嘟嘟搜索 7.0 VB加速版.exe

    数据库连接文件: conn.asp 请调试成功后立即修改参数data_name的数据库名称和路径 单机运行环境: iis6.0 MSXML 3.0 Service ACCESS 2003 (或前述软件的更高版本) 开放FSO权限 ASP默认语言VBS 空间...

Global site tag (gtag.js) - Google Analytics