从存储过程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获取返回值的主要内容,如果未能解决你的问题,请参考以下文章