从存储过程pymssql获取返回值

Posted

技术标签:

【中文标题】从存储过程pymssql获取返回值【英文标题】:get return value from store procedure pymssql 【发布时间】:2019-02-06 12:01:26 【问题描述】:

我正在使用 python 中的 pymssql 框架设置我的连接并从 sql-server 返回错误值

这是我使用 pymssql 框架的 Python 代码

with pymssql.connect(self.server,self.userID,self.password,self.database) as conn:
    with conn.cursor() as cursor:
        msg = curosr.callproc("TESTVALUE")
        print (msg["return"])

我从 msg 收到错误,没有返回变量

如果我在 C# 语言上获取返回值,我可以这样做:

errCode = (int)Cmd.Parameters["return"].Value;

这是我的存储过程

ALTER PROCEDURE dbo.TESTVALUE
AS
BEGIN
    #Some query
    IF 1 == 1 #Some Logic
       Return -631 #The Return Value that i need to get
END

我需要使用带有 pymssql 框架的 python 代码获取 Return -631 值

我如何才能获得该返回值 ini python?请帮忙。

【问题讨论】:

【参考方案1】:

您可以使用匿名代码块来执行存储过程并检索返回值:

sql = """\
SET NOCOUNT ON;
DECLARE @rv int;
EXEC @rv = dbo.TESTVALUE;
SELECT @rv;
"""
crsr.execute(sql)
return_value = crsr.fetchone()[0]
print(return_value)  # -631

【讨论】:

哇,谢谢你!!

以上是关于从存储过程pymssql获取返回值的主要内容,如果未能解决你的问题,请参考以下文章

从存储过程中获取返回值

使用 pymssql,如何使用输出调用存储过程

从 C# 中的存储过程中获取返回值

如何从 Oracle 存储过程中获取两个返回值

使用 python pymssql 调用 sql server 存储过程

执行使用 PyMSSQL 引用链接服务器的存储过程时出错