从历史计算中执行 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.Execute
到
value = cmd.Execute()
使用 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.Execute
到
value = cmd.Execute()