在Wincc全局脚本程序中定义一个函数Function1(strSQL),执行查询操作并返回数据集Recordset

小弟我在Wincc全局脚本程序中定义了一个函数Function1(strSQL),通过传递过来的SQL语句执行查询操作并返回数据集Recordset,现在要在别的按钮动作里调用这个函数,并将函数运行结果Recordset返回,以便对返回结果进行处理.
    我的代码如下
    Function ReadrecordDB(strSQL) 

Dim objConnection

Dim objCommand

Dim objRecordset

Dim strConnectionString

strConnectionString = "…………………….(此处省略了)"

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

Set objCommand = Nothing

objConnection.Close

Set objRecordset = Nothing

Set objConnection = Nothing

ReadrecordDB = objRecordset.clone()

End Function

其他程序调用
 ……
 Set Count = CreateObject("ADODB.Recordset")
 Count = ReadrecordDB(strSQL)
 Value1 = Count.Fields(0).value
 Value2 = Count.Fields(1).value
 ……
 ……

但是运行调试的时候提示在Function中的
ReadrecordDB = objRecordset.clone()
处有语法错误,错误信息是:
Wrong number of arguments or invalid property assignment
哪位大哥大姐给点指点吧,小弟在此谢过了!

最佳答案

把你的Connection和Recordset参数拿出来,即把函数改成:
 Function ReadrecordDB(Connection,Recordset,strSQL) 
然后三个参数都从按钮动作里传递进去,对象也在按钮动作里释放,试试。

提问者对于答案的评价:
在别的地方找到答案了,但不是写成Function,而是写成Sub
Sub ReadrecordDB(Connection,Recordset,strSQL)
Function 返回Recordset,也实现了,但在函数里Connection好像不能释放。 

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

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

相关推荐

  • 两台S7200 PLC通过PC Access和WICC怎么通讯

    我有两个S7200 PLC一台是CPU224和CPU226,在PC Accesss里怎么设置才能使两台PLC都能在WICC里实现控制通讯 问题补充:我的两台PL…

    SIMATIC WinCC 2019年6月10日
  • WINCC内的授权文件

    现有WINCC7.0软件一套,采用以太网或PROFIBUS与一台S7300PLC进行通讯。在密码狗内有一个INTERNET的授权和一个PROFIBUS的授权,不知道是不是还需要SI…

    SIMATIC WinCC 2019年6月11日
  • WINCC5.1与s7-300 314通讯故障

    WINCC5.1与s7-300 314连接不上,检测老显示0X031b,用WINCC通道诊断显示故障代码为4231,什么问题? 最佳答案 注意一下通讯PG/OP数量;电脑…

    SIMATIC WinCC 2019年6月11日
  • wincc遇到的变量连接问题

    要在wincc6.0中点击一个按钮使输入输出域加1,该怎么办呢? 最佳答案 WinCC全局库->Operation->IncrDecr-Buttons->Incr…

    SIMATIC WinCC 2019年6月10日
  • VMware虚拟机中PCS7如何与现场设备通讯

    我的软件是装在虚拟机里的,想请问一下用虚拟机可以走DP通讯连接到现场设备吗?我wincc组态界面也是在虚拟机里,可以实现与现场设备的交互吗?由于以前一直没用过虚拟机,而且刚接触pc…

    SIMATIC WinCC 2021年7月5日
  • 如何安装 WINDWOS SERVER 2003 sp2

    请具体点哦   把具体的版本和注意事项都说下谢谢 问题补充:如何安装 WINDWOS SERVER 2003 …

    SIMATIC WinCC 2019年6月11日
  • wincc画面切换

    我做了个工程,布局,画面、C脚本也写,编释没错,为什么切换不了呢?主画面加菜单画面加其它画面的形式,#include "apdefap.h"&nbsp…

    SIMATIC WinCC 2019年6月11日
  • wcc用户管理器

    我们车间的技术部门要加一个权限,就是有些工艺数据只有技术部可以改,操作工不能随便更改,我看了wcc的用户管理器,有几点不是很明白想请教:1、用户管理器操作的权限是怎么设的,就是说第…

    SIMATIC WinCC 2019年6月11日
  • WINCC变量连接

    我想需求两个帮助:1.在变亮属性动作中,直接连接中的源和目标都应该如何选?我要连接的外部变量例如I0.0地址是连接在源中还是目标中?请详细的讲讲。2.WINCC画面中图库里的图片如…

    SIMATIC WinCC 2019年6月11日
  • wincc7.4数据类型32位浮点型

    请请问哪位大侠知道,我安装了WINCC7.4定义了32位浮点型的变量,WINCC7.4运行后怎么给读不到S7300的PLC 32位浮点型的数据(数据输出显示阴影)?然后我…

    SIMATIC WinCC 2020年11月1日