帮忙解释以下脚本

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日 上午7:33
下一篇 2019年6月11日 上午7:33

相关推荐

  • WINCC7.3建数据库 有时间做这个工程的联系

    现有一设备系统是S7-1500的PLC,WINCC7.3读1500中的数据并记录报警。设备一次进入2只产品,每个产品有5个检测 项目,每次同时检测10个产品;产品检测第一…

    SIMATIC WinCC 2021年7月5日
  • WINCC7.3这个还需不需要授权了

    我只是用来学习要求也不高研究了半天 还没授权明白,明明版本是V7.3只能授权V7.2的RC图片的意思还需要重新授权吗 问题补充:现在就这样用 影不影响WINCC…

    2021年7月5日
  • wicc flexible画面切换功能

    在wincc flexibl中做的画面,其中在一个初始画面中做了一个按钮,用于切的换到另一个画面,但是在模拟过程中,按了这个按钮后,切换一顺间,又跳回主画面了。求解? 问…

    SIMATIC WinCC 2019年6月11日
  • wincc输出域数值自动四舍五入问题

    我把wincc与PLC连接起来,有一输出域设定是一溶氧模拟量值,数值地址是VD20,wincc里面设定类型为REAL,输出域属性设定:数据格式为99.99,变量连接上面的地址,结果…

    SIMATIC WinCC 2019年6月11日
  • 报警组态不了,是不是所装的软件有问题啊

    报警组态不了,是不是所装的软件有问题啊?我是按照视频所讲的,一步一步来的啊,我把报警位置 1 ,仿真模拟的时候就是不会出现报警窗口或者报警视图啊?请高手指点啊,…

    SIMATIC WinCC 2019年6月11日
  • WINCC7.4结构变量

    创建好结构类型元素以后,然后创建结构变量,给结构变量指定一个地址,结果结构变量元素中看到的是该结构体中所有的元素的地址都是刚刚在结构变量中所指定的地址,也就是说结构体中的每一个元素…

    SIMATIC WinCC 2021年7月5日
  • WIN7下如何安装WINCCflexible2008

    WIN7下无法安装WINCCflexible2008 最佳答案 1、wincc flexible 2008 SP2 支持WIN7版本的操作系…

    SIMATIC WinCC 2021年7月5日
  • wincc人机界面报警组态

    我想在主界面放置一个灯,只要其他的报警变量有变化,即只要有一个报警出现,这个灯就会变化闪烁,也就表示有故障报警。请问该怎么设置?请回答详细一点,我也是刚刚接触WinCC,谢谢!我不…

    SIMATIC WinCC 2017年6月3日
  • wincc画曲线

    有500组xyPLC外部变量,使用FunctionTrendControl控件画曲线,读取外部变量赋值控件,读取速度特别慢,该如何处理呢For i =&nbsp…

    SIMATIC WinCC 2021年7月5日
  • wincc模拟量控制自动弹窗

    我用的是wincc v7.3,在线监控温度,如果温度超过A,wincc就自动弹出一个窗口来提示。在弹出的这个窗口上可以点一个按钮把窗口隐藏。请各位大侠帮忙。 最佳答案 在…

    SIMATIC WinCC 2017年6月3日