从历史记录计算

时间:2016-07-07 11:08:07

标签: stored-procedures historian proficy

使用Historian 5.5和SQL Server 2012。

我在SQL Server中有一个名为perfEng_RWtopits的存储过程,我想在Historian Administrator的计算标记中调用此过程。

存储过程返回一个float值。

到目前为止,我有以下代码:

   Dim sql
   Dim con 
   Dim cmd
   Dim value

   sql = "perfEng_RWtopits"
   Set con = CreateObject("ADODB.Connection")
   con.ConnectionString =  "myconnectionstring"
   con.Open                        
   Set cmd = CreateObject("ADODB.Command")
   cmd.ActiveConnection = con
   cmd.CommandText = sql                   
   value = cmd.Execute

   con.close
   Set cmd = Nothing
   Set con = Nothing

当我测试计算时,我得到零值和质量差。如果我在SQL Server中执行存储过程,我得到17.123554(这是正确的)。如果我将以下内容添加到最后。

Result = value

我收到以下错误消息。

Historian Error Message

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您的vb脚本中有错误。糟糕的是,我们无法在计算选项卡中的Historian Administrator中对其进行调试。

使用无参数函数时,您可以通过以下方式执行: FunctionName 要么 FunctionName(),但是当您想要将结果传递给变量时,您必须使用()这样的value = FunctionName()

您使用的功能cmd.Execute没有(),并将结果返回到value。只需修好线 value = cmd.Executevalue = cmd.Execute()