`

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
分享到:
评论

相关推荐

    16358010wincc通过vbs访问数据库_VB数据库_wincc读写数据库_wincc读写sql_wincc数据库_

    1. **连接数据库**:在VBScript中,我们可以使用ADODB对象模型来建立与SQL Server的连接。首先,我们需要定义一个Connection对象,并设置相应的连接字符串,例如:"Provider=SQLOLEDB;Data Source=<服务器名>;...

    vbs链接数据库操作说明

    总的来说,VBS通过ADO连接数据库的关键步骤是创建`ADODB.Connection`对象,构建适合特定数据库的连接字符串,打开连接,检查错误,然后执行数据库操作。这个过程可以适应多种数据库系统,使得VBS成为一个灵活的工具...

    VBS连接SQL和dbf数据库样例

    在IT领域,特别是数据库操作与脚本编程方面,VBS(Visual Basic Script)提供了一种灵活而强大的方式来实现对不同类型的数据库进行访问和数据处理。根据提供的文件信息,我们将深入探讨如何使用VBS脚本来连接和操作...

    wincc用vbs脚本写入sqlserver数据库.docx

    在本文中,我们将探讨如何使用Visual Basic Script (VBS) 在西门子WinCC人机界面系统中编写脚本来将数据写入SQL Server数据库。这个过程涉及到几个关键步骤,包括建立数据库连接、编写SQL查询语句以及处理数据写入。...

    VBS连接EXCEL及其操作

    接下来,我将详细介绍如何使用VBS连接并操作Excel的相关知识点。 首先,VBS可以通过COM(Component Object Model)对象模型与Excel应用程序进行交互,创建和控制Excel进程。动态创建Excel对象时,我们使用...

    WinCC中用VBS实现对SQL数据库的写操作

    本文将详细介绍如何在WinCC环境中利用VBS(Visual Basic Scripting Edition)实现对SQL数据库的写操作。 ### WinCC中的VBS脚本 在WinCC项目中,VBS脚本通常用于执行复杂的逻辑处理或与外部系统交互的任务。VBS脚本...

    在wincc中通过vbs操作SQL

    在本文中,我们将探讨如何在WinCC中通过Visual Basic Script (VBS)来操作SQL Server 2005数据库,实现数据的存储和查询功能。 首先,确保你的WinCC项目已经与SQL Server 2005集成。自WinCC 6.2版本起,系统开始支持...

    WINCC连接自定义数据库VBS脚本

    在VBS脚本中,连接数据库主要涉及以下几个步骤: - 创建连接字符串:根据数据库类型(如SQL Server)设置连接字符串,包含必要的连接信息(如服务器地址、数据库名等)。 - 建立连接对象:使用`CreateObject`方法...

    sqliteodbc驱动,可以让vbs通过ADO操作sqlite数据库

    SQLite ODBC驱动是一个重要的软件组件,它使得Visual Basic Script (VBS)等应用程序能够通过ADO(ActiveX Data Objects)接口与SQLite数据库进行...然而,对于大多数常规的数据库操作,这无疑是一种简单且实用的方法。

    WINCC中使用VBS脚本读写SQLServer数据库文件

    2. **数据库连接字符串**:在连接数据库时,需根据实际情况调整数据库连接字符串中的参数。 3. **数据类型匹配**:确保WINCC变量与数据库字段的数据类型相匹配,避免类型不匹配导致的数据错误。 4. **安全性**:在...

    VBS连接MYSQL教程.docx

    ### VBS连接MYSQL教程知识点详解 #### 一、概述 本文档主要介绍如何通过VBS(Visual Basic Script)实现与MySQL数据库的连接。这包括了MySQL驱动的安装、数据源的建立、连接字符串的生成以及连接过程中可能遇到问题...

    QTP连接ORACLE数据库的3种方法

    ### QTP连接ORACLE数据库的3种方法 在软件测试领域,尤其是自动化测试过程中,经常需要与数据库进行交互以验证应用程序的功能是否正确实现。本文主要介绍如何使用Quick Test Professional(QTP)工具来连接Oracle...

    QTP连接数据库代码

    在QTP中连接数据库是一项重要的功能,它能够帮助测试人员验证应用程序对数据库的操作是否正确。 QTP连接数据库主要涉及以下几个关键知识点: 1. **数据驱动测试**:这是一种测试方法,其中测试用例的数据来自外部...

    VBScript直接连接Oracle

    - **关闭连接**:在完成所有操作后,需要显式地关闭数据库连接并释放相关资源。 #### 五、注意事项 - **安全性**:在实际部署中应考虑使用更安全的方式传递用户名和密码,避免硬编码。 - **错误处理**:添加适当的...

    巧妙运用WinCC V6.0 VBS 脚本实现对 SQL Server数据库的存储与查寻

    用户只需要在VBS脚本中调用适当的ADO对象,如“Connection”、“Command”和“Recordset”,即可建立与数据库的连接,执行SQL语句。 ### 结论 巧妙运用WinCC V6.0的VBS脚本功能,可以极大地提高工业现场的数据管理...

    asp连接数据库代码实例

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

    asp和vbscript滚动字幕连接数据库代码

    通过以上分析,我们可以看到这是一个完整的使用ASP和VBScript实现滚动字幕并连接数据库的例子。它不仅展示了如何利用`<marquee>`标签来实现动态效果,还介绍了如何通过ASP脚本来访问和操作数据库中的数据。这对于...

    VBS.rar_WinCC_vbs

    描述中的“WINCC使用VBS连接ACESS数据库”进一步确认了这个压缩包内容的核心——通过编写VBS脚本来实现在WinCC项目中与ACCESS数据库的通信。ACCESS数据库是一种常用的轻量级数据库管理系统,适用于小型企业或个人...

    (完整word版)wincc中使用VBS脚本读写SQLServer数据库文件.doc

    总的来说,这份文档提供了关于如何利用WinCC和VBS进行数据库操作的详细步骤,这对于需要实时监控和控制生产数据的工业环境非常有价值。通过这样的集成,WinCC可以及时地从SQL Server获取数据,为操作员提供直观的...

Global site tag (gtag.js) - Google Analytics