帮忙解释以下脚本

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.0 modbus tcp ip 连接施耐德M340PLC

    现用WINCC7.0连接施耐德的M340PLC,有两个问题需向大侠们请教1是在变量管理中CPU的连接类型,WINCC7.0中就提供了以下几个:CPU 984(CPU&nb…

    SIMATIC WinCC 2019年6月11日
  • Web Navigator安装出错

    大家好,我已经在系统XP sp2中安装了WinCC V6.2 sp2 Asia ,IIS也已经安装上,现在要安装Web …

    SIMATIC WinCC 2019年6月11日
  • web navigator过程画面报错

    按照深入浅出wincc书上的指示,一步步做实验。当进行到发布画面这一步的时候弹出了画面:【Datenumsezer 遇到问题需要关闭】点击详细信息显示:【错误签名&nbs…

    SIMATIC WinCC 2019年6月11日
  • wincc激活后 状态栏

    wincc 激活运行后,桌面状态栏不见了 钻石用户推荐最佳答案 上图,你想要windows的那个状态栏吗?你的wincc项目窗口化就行了。 提问者对于答案的评价:

    SIMATIC WinCC 2021年7月5日
  • 高分求助画面显示问题

    我有3个图片,要求当一个二进制数a等于1,并且一个8位无符号整数b等于1、2、3时,分别显示1号、2号、3号图片,同时要求8位无符号整数b每固定时间间隔从1–2–3–1进行循…

    SIMATIC WinCC 2019年6月11日
  • WINCC中电机显示用内部变量连接为什么没有显示

    当关连一个内部变量时电机不会随布尔变量发生颜色改变,而用相同方法设定一个圆则可以跟据变量的改变而发生相应的变化 最佳答案 如果是库里的电机,需要先把控件属性中的符号外观设为2。 提…

    SIMATIC WinCC 2019年6月11日
  • 请问ODK哪个函数可以获得WinCC归档变量信息

    请问ODK哪个函数可以获得WinCC归档变量信息和归档中各个Tag的信息?谢谢! 问题补充:我在ODK的帮助文档里找到一个TLGReadArchiv,请问这个行吗,我试着写了写TL…

    SIMATIC WinCC 2019年6月11日
  • 在WINCC中添加网页浏览视频监控窗口

    在WINCC中添加网页浏览视频监控窗口,但是进网页后需要输入密码,能不能用脚本将网页设置成自动填写登陆名及密码,并自动点击登录 图片说明:    最佳答案 wi…

    2021年7月5日
  • 有关基于PROFIBUS 的液位控制系统的问题

    我准备用单片机作为从站的智能芯片,PC机作为主站。请问,我可以用WINCC编写作为主站的通信程序?如果可以怎么编写,最好告诉我程序!谢谢 最佳答案 这个时候你需要把pc机组太为一类…

    SIMATIC WinCC 2019年6月11日
  • 操作员站无法控制阀门

    PCS7系统,wincc上的阀门块Vlvl是通过OS自动编译过来的,在工程师站上操作正常,点三个点按钮扩展面板后可以进行手/自动切换,也可以直接开关,但是从工程师站下装到操作员站,…

    SIMATIC WinCC 2018年12月5日