wincc 使用vbs脚本进行MySQL数据库连接

本文通过一个具体的示例演示了如何使用VBA连接MySQL数据库,并展示了如何执行SQL查询语句来从数据库中检索数据。文章详细解释了创建ADO连接对象、设置数据库连接字符串的过程,并给出了错误处理的方法。
Option Explicit
Function action


Dim adoConn '定义ADO连接对象 
Dim ConnectionStr '定义数据库连接字符串 
Dim sqlStr
'获取连接数据库字符串
ConnectionStr="Provider=MSDASQL.1;Persist Security Info=True;Extended Properties='Driver=MySQL ODBC 5.3 ANSI Driver;SERVER=localhost;UID=root;PWD=root;DATABASE=test;PORT=3306'"
Set adoConn = CreateObject("ADODB.Connection")
'利用数据库连接字符串打开数据库 
On Error Resume Next 
adoConn.Open ConnectionStr 
'查看是否连接成功,成功状态值为1
'msgbox adoConn.state
If adoConn.State = 0 Then
     Msgbox  "连接数据库失败!"
else
    Msgbox   "连接数据库成功!"
End If
'获取数据库查询语句 
sqlStr = "select * from utest where id=1 "
'执行sql语句并返回对应的结果集 
Set adoRst = adoConn.Execute(sqlStr) 
'获得结果集中年龄字段的值 
MsgBox adoRst.Fields.Item("ub").Value 
'关闭数据库 
adoConn.Close 
'释放数据库对象 
Set adoConn = Nothing 


End Function



为啥一直包数据库连接失败?

### WINCC使用 VBS 脚本实现 Try-Catch 的 SQL 读写操作 在 WINCC 中,可以通过 Visual Basic Script (VBS) 实现数据库的读取和写入功能。为了处理可能发生的错误,可以利用 `On Error Resume Next` 和 `Err.Description` 来模拟类似于其他编程语言中的 `Try...Catch` 结构[^1]。 以下是完整的示例代码以及说明: #### 示例代码:SQL 数据库读写操作 ```vbscript ' 定义变量 Dim conn, rs, sqlQuery, dbPath, result ' 设置数据库路径(假设为 Access 数据库) dbPath = "C:\path\to\your\Database.accdb" ' 创建 ADO 连接对象 Set conn = CreateObject("ADODB.Connection") ' 尝试连接数据库并执行查询 On Error Resume Next ' 开启错误捕获模式 conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbPath & ";" If Err.Number <> 0 Then MsgBox "Error connecting to database: " & Err.Description, vbCritical, "Database Connection Failed" WScript.Quit End If ' 执行 SQL 查询语句 sqlQuery = "SELECT * FROM YourTableName WHERE SomeCondition='Value';" Set rs = CreateObject("ADODB.Recordset") rs.Open sqlQuery, conn ' 处理查询结果 If Not rs.EOF Then Do While Not rs.EOF result = result & rs.Fields("ColumnName").Value & vbCrLf rs.MoveNext Loop Else result = "No records found." End If ' 输出查询结果至消息框 MsgBox result, vbInformation, "Query Result" ' 关闭记录集和连接 rs.Close conn.Close ' 清除对象 Set rs = Nothing Set conn = Nothing ' 错误恢复 On Error GoTo 0 ``` --- #### 示例代码解释 1. **创建数据库连接** 使用 `CreateObject("ADODB.Connection")` 方法建立与数据库连接,并指定数据源字符串。这里以 Microsoft Access 数据库为例,如果目标是 SQL Server 或 MySQL,则需调整提供程序和连接字符串[^2]。 2. **启用错误捕获机制** 利用 `On Error Resume Next` 启动错误跳过模式,在发生异常时不中断脚本运行。随后可通过检查 `Err.Number` 属性判断是否有错误发生,并通过 `Err.Description` 获取具体描述信息。 3. **执行 SQL 查询** 构造所需的 SQL 查询语句并通过 `Recordset` 对象打开结果集。遍历每一行数据并将字段值存储于变量中以便后续显示或进一步处理。 4. **关闭资源** 在完成所有操作之后务必释放占用的资源,包括关闭记录集 (`rs.Close`) 和断开数据库连接 (`conn.Close`)。 5. **清理环境** 最终设置相关对象为空值以确保内存被正确回收,并重新激活默认错误处理逻辑(`On Error GoTo 0`)。 --- #### 注意事项 - 如果需要支持更复杂的事务管理或者跨多个表的操作,建议引入额外的控制结构来增强健壮性和可维护性。 - 需要根据实际使用数据库类型修改相应的驱动器名称及其配置参数[^3]。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值