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

相关推荐

  • WINCC S71200

    WINCC通过以太网能同时和S7300,S71200通讯吗?S71200通过OPC和WINCC通讯,S7300通过S7 TCP/IP和WINCC通讯, &nbs…

    SIMATIC WinCC 2021年7月5日
  • winncc 6.2 历史趋势

    最近将一个5.1版的项目,试着转化成6.2版,别的一切正常。点击数据,显示出历史趋势控件,显示当前一天的历史趋势,这个功能在5.1一切正常,但在6.2  ,第一…

    SIMATIC WinCC 2019年6月11日
  • wincc7.0百分比趋势图

    是这样的。我在一个项目中做了一个历趋势我在变量记录里面做的时是值记录(实际值)但是这个项目要求要有两种趋势图(实际值趋势图)和百分比趋势图有没有什么办法在只有一种变量记录(实时数据…

    SIMATIC WinCC 2017年7月25日
  • STEP7能够连上PLC,Wincc 6.2连接不上

    原来的系统是S7-300+CP5611,Win2000+STEP7 V5.2 SP1+Wincc 6.0 SP2,现在想升级为WinXp&n…

    SIMATIC WinCC 2021年7月5日
  • wincc 中阀门颜色改变

    我在wincc中调用了一个阀门的那个上边是绿色的我想通过按一个按钮就是他的颜色发生改变从而显示时开关  我变量也建立了 是不是通过那个属性——事件的变…

    SIMATIC WinCC 2019年6月11日
  • 求助!如何使用触摸屏向plc写入一个变量的数据

    如题,笔者需要通过触摸屏(型号是smart 700 IE V3)向PLC(S7-200 smart cpu CR40)写…

    2021年7月5日
  • 请教wincc VBS脚本

    请教各位高手谁可以帮我写一个VBS脚本让小弟参考参考?问题如下我在工控机上做一个清零按钮,点此按钮就把当前的日期和时间,机台号以及对应的产量移到数据表里头;再在工控机上输入查询的开…

    SIMATIC WinCC 2019年6月11日
  • 请问这个要求该如何编写程序啊?

    请问这个要求该如何编写程序啊?主要是运行反馈时不让切换程序。在触摸屏上有一个电压给定输入框,对应的变量是MW100。Q0.0为低压档接触器,Q0.1为中压档接触器,Q0.2为高压档…

    SIMATIC WinCC 2017年6月24日
  • wincc编程的问题

    1.在C脚本中 如何获取某个图形的属性 例如要获得一个矩形的X坐标。 2.在C脚本中 如何获得某个tag的值 例如 te…

    SIMATIC WinCC 2019年6月11日
  • 无线调试STEP7、wincc

    在我们新建的生产线上,看到老外用无线调试STEP7、wincc,请问该如何实现?请高手相助!! 最佳答案 使用一台无线路由器,将STEP7, WINCC和调试电脑连成局域…

    SIMATIC WinCC 2021年7月5日