我正在尝试从我的操作中执行一个存储过程,我获得最令人满意的结果的方式是通过以下调用:
Set tResult = ##Class(EnsLib.SQL.GatewayResultSet).%New()
Set tQuery = "EXEC MY_PROC @name = 'Jhon', @profession = 'carpenter'"
Set tSC = ..Adapter.ExecuteQuery(.tResult, tQuery)该过程被执行(它从ODSE数据库中删除一个注册表,默认情况下不返回),但我得到一个错误,如
“错误#5023远程网关错误。语句没有返回结果集。”
我的行动就会停止。
我甚至尝试了ExecuteProcedure方法,但没有成功。
有人能在这方面帮我吗:)
Ps。我是这个堆栈上的新手,完全不是新手。D:
提前谢谢。
发布于 2021-10-04 18:50:37
我发现了我的问题,我在这种情况下调用了错误的方法。在不返回的情况下调用过程或查询的正确方法是ExecuteUpdate()而不是ExecuteQuery()。此方法仅返回受影响的行数,并接收我们的过程命令。因此,示例如下所示:
Set tQuery = "EXEC MY_PROC @name = 'Jhon', @profession = 'carpenter'"
Set tSC = ..Adapter.ExecuteUpdate(.tNumberOfRowsAffected, tQuery)Objectscript的官方文档有时就像一个黑暗的洞穴。
https://stackoverflow.com/questions/69397271
复制相似问题