VBS连接数据库代码

原创 2012年03月23日 16:14:42

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连接数据库

我用以下js连接正常 var conn = Server.CreateObject("ADODB.Connection"); var myconn = "Provider=SQLNCLI;Se...
  • peili4094
  • peili4094
  • 2017年01月08日 16:42
  • 437

用 VBScript 的 ADODB 连接 MySQL 数据库

Step#1, Download MySQL Connector ODBC from Offical Web Site Navigate to http://dev.mysql.com/downloa...
  • wxqee
  • wxqee
  • 2013年08月15日 20:52
  • 8122

VBS连接SQL server数据库

从数据透视图中导出报表其中一个条件需要从数据库中获取,采用vbs获取数据库,然后查找记录。之前学过vb获取数据库这次改成vbs获取方式也差不多。      Dim DB Dim isSQL...
  • jiudihanbing
  • jiudihanbing
  • 2013年05月30日 22:37
  • 4003

VBS代码--很恶心的整人效果

----我们会经常遇到一些无聊的文件,一旦我们打开它就会出现各种烦人的新窗口,今天来看的是VBS脚本---- 一:VBS简介 VBS是基于Visual Basic的脚本语言。VBS的全称是:Micr...
  • qq_32616315
  • qq_32616315
  • 2016年06月02日 20:26
  • 10253

VBS脚本常用经典代码

VBS脚本常用经典代码 1、VBS获取系统安装路径 /*先定义这个变量是获取系统安装路径的,然后我们用“&strWinDir&”调用这个变量。*/ setWshShell = WScript.C...
  • cosmoslife
  • cosmoslife
  • 2016年11月21日 18:38
  • 9128

VBS连接数据库操作

VBS连接数据库操作
  • chenshuixian2
  • chenshuixian2
  • 2010年09月09日 21:47
  • 6120

连接ORACLE 数据库VBS函数

  连接ORACLE 数据库VBS函数2007-09-19 16:49:39 / 个人分类:QTP 今天写了个QTP连接ORACLE 数据库函数的VBS,共享一下:DBOperation.vbs---...
  • happypolo
  • happypolo
  • 2008年12月21日 08:53
  • 2969

vbs简单好玩的代码段

目录: 1.让电脑说话(讲英文的) 代码: 1.说话 createobject("sapi.spvoice").speak"Hello,I am computer speaker, now I wil...
  • u014286164
  • u014286164
  • 2015年09月11日 11:14
  • 641

【VBS脚本教程1】:写一个说话的语音程序

代码很简单,两行即可,可以用来送女朋友~代码set objTTS = createobject("sapi.spvoice") objTTS.speak "您好,第一个语音程序" '粘贴代码修改为后...
  • qq_23100787
  • qq_23100787
  • 2015年09月21日 13:22
  • 3896

VBS 自动登录实现代码

代码如下: on error resume next url = " http://www.bathome.net/logging.php?action=login" username = "*...
  • Jamie2012
  • Jamie2012
  • 2016年10月04日 21:17
  • 825
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VBS连接数据库代码
举报原因:
原因补充:

(最多只允许输入30个字)