从历史计算中执行 SQL 服务器存储过程

Executing a SQL Server stored procedure from a historian calculation

使用 Historian 5.5 和 SQL Server 2012。

我在 SQL 服务器中有一个名为 perfEng_RWtopits 的存储过程,我想从 Historian Administrator 的计算标签中调用这个过程。

存储过程returns一个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 服务器中执行存储过程,我会得到 17.123554(这是正确的)。另外,如果我将以下内容添加到末尾。

Result = value

我收到以下错误消息。

有人能帮忙吗?

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

当使用无参数函数时,您可以通过编写来执行它: FunctionName 要么 FunctionName(),但是当你想将结果传递给变量时,你必须像这样使用 () value = FunctionName()

您正在使用没有 () 的函数 cmd.Execute 并将结果返回给 value。把线修好 value = cmd.Executevalue = cmd.Execute()