帮忙解释以下脚本

Dim objConnection

 Dim objCommand

 Dim objRecordset

 Dim strConnectionString

 Dim strSQL

 Dim lngValue

 Dim lngCount

 strConnectionString = "Provider=MSDASQL;DSN=sampleDSN;UID=;PWD=;" 

 strSQL = "select  from WINCC-DATA where ID=1" 

 Set objConnection = CreateObject("ADODB.Connection")

 objConnection.ConnectionString = strConnectionString

 objConnection.Open

 Set objRecordset = CreateObject("ADODB.Recordset")

 Set objCommand = CreateObject("ADODB.Command")

 objCommand.ActiveConnection = objConnection

 objCommand.CommandText = strSQL

 Set objRecordset = objCommand.Execute

 lngCount = objRecordset.Fields.Count

 If (lngCount>0) Then

 objRecordset.movefirst

 lngValue = objRecordset.Fields(0).Value

 HMIRuntime.Tags("b").Write lngValue

 Else

 HMIRuntime.Trace "Selection returned no fields" & vbNewLine 

 End If

 Set objCommand = Nothing

 objConnection.Close

 Set objRecordset = Nothing

 Set objConnection = Nothing
 

问题补充:
我是新手,最好能每条都解释出来,特别是HMIRuntime.Tags("b").Write lngValue这一句中是把lngValue = objRecordset.Fields(0).Value中具体什么值给b。谢谢

最佳答案

很简单,你要学点vbs和ado的知识就能看懂了。
 今天俺闲来无事,就给你解释解释:(代码正确与否我就不管了)

 strConnectionString = "Provider=MSDASQL;DSN=sampleDSN;UID=;PWD=;" 
 ‘连接数据库的字符串,后面用
 strSQL = "select  from WINCC-DATA where ID=1" 
 ‘查询数据库的字符串,后面用
 Set objConnection = CreateObject("ADODB.Connection")
 ‘创建ado对象
 objConnection.ConnectionString = strConnectionString
 ‘把前面的连接字符串赋值给创建好的ado对象
 objConnection.Open
 ‘连接数据库
 Set objRecordset = CreateObject("ADODB.Recordset")
 ‘创建recordset对象(记录集)
 Set objCommand = CreateObject("ADODB.Command")
 ‘创建command对象,这是用来执行查询等命令的
 objCommand.ActiveConnection = objConnection
 ‘command要跟连接的数据库“勾搭”一下啊
 objCommand.CommandText = strSQL
 Set objRecordset = objCommand.Execute
 ‘执行前面的select语句去查记录
 lngCount = objRecordset.Fields.Count
 ‘得到查询记录的数量
 If (lngCount>0) Then
 ‘如果返回的记录数量大于0就….
 objRecordset.movefirst
 ‘指针移到第一条记录
 lngValue = objRecordset.Fields(0).Value
 ‘得到第一个字段的值
 HMIRuntime.Tags("b").Write lngValue
 ‘写到b这个tag中去
 Else
 ‘没查到记录就返回一条错误信息
 HMIRuntime.Trace "Selection returned no fields" & vbNewLine 

 End If
 ‘释放对象
 Set objCommand = Nothing

 objConnection.Close

 Set objRecordset = Nothing

 Set objConnection = Nothing

 
 

提问者对于答案的评价:
xiexie

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc270428.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐

  • smart 700 IEV3 触屏与电脑无法联接

    我的电脑在下载触屏程序时用网线无法与屏联接 钻石用户推荐最佳答案 链接参考Smart屏下载/回传:http://www.ad.siemens.com.cn/service/arti…

    SIMATIC WinCC 2020年11月1日
  • WINCC梯度设置

    在液位的监控画面中有个梯度设置,不理解这个设置是什么作用?单位为M/S,可以用来做流量变化吗?谢谢 最佳答案 这个应该是液位PID控制画面吧,梯度是指以一定速率(如以0.1米/s的…

    SIMATIC WinCC 2021年7月5日
  • WiCC中1000条报警记录问题

    在09年9月16日,计算机系统时间被改为10月16日,9月17日发现后把系统时间重新改回来。但是WinCC中1000条故障信息记录中一直显示10月17日信息,从9月16日到现在一直…

    SIMATIC WinCC 2019年6月11日
  • STEP7和Wincc版本问题

    我习惯编程软件是STEP5.5和wincc7.0(系统是win7,sp1,32位),我想问一下现在这两款软件的订货号(变量最大有多少,大概需要2000-3000个左右),由于目前在…

    SIMATIC WinCC 2021年7月5日
  • WINCC“管理员”不能删除?

    管理员级别的密码忘记了,想删除重新建,结果提示不能删除,该怎么办? 最佳答案 1.管理员的用户是系统默认的,不能删除!   2.解决你的问题很简单啊:…

    SIMATIC WinCC 2019年6月11日
  • 触摸屏与控件问题

    wincc  flexible打开报以下两个错误如何解决是什么问题 图片说明:       最佳答案 检查一下兼容性吧,…

    2020年11月1日
  • PCS7下的操作员站OS的插入

    在SIMATIC Manager下,插入WINCC中的OS无法插入。提示:无法再WINCC中创建对象OS(1)(创建对象)用“新建项目向导创建项目”无法创建项目,除了上面…

    SIMATIC WinCC 2019年6月11日
  • 【求助】wincc与plc的数据库

    我的导师让我建立一个plc与触摸屏的公用数据库,请问这个数据库是用什么做的。 最佳答案 你说的应该plc中的全局数据块,所有需要和hmi通讯的数据都放到这个数据块中。 提问者对于答…

    SIMATIC WinCC 2021年7月5日
  • 看看我这么做能不能实现?

    我把PLC从现场采集的压力信号存储在S7-300PLC的DB块中,在PLC与上位机wincc进行通讯时,我是每五个压力数据打包传送一次,这样我就要在wincc中建立5个过程变量,分…

    SIMATIC WinCC 2019年6月11日
  • 读取归档变量值必须用OLEDB吗

    归档变量在归档时,我没有选压缩选项,是否可以直接用SQL语句读取归档变量数据啊 最佳答案 可以的。 提问者对于答案的评价:谢谢 专家置评 dcount107 介绍的比较准…

    SIMATIC WinCC 2019年6月11日