pymssql如何传递输出参数
pymssql how to passing output parameter
我试过使用此代码:
outputparam1 = pymssql.output(int)
outputparam2=pymssql.output(int)
outputparam3=pymssql.output(int)
try:
with pymssql.connect('localhost','sa','anypassword', 'anydb') as conn:
with conn.cursor(as_dict=True) as cursor:
cursor.callproc("storedprocedure_name",('inputparam', outputparam1, outputparam2, outputparam3))
except Exception,e:
pass
这是 SQL 服务器存储过程:
ALTER PROCEDURE [dbo].[storedprocedure_name]
(@inputparam NVARCHAR(100),
@outputparam1 INT OUTPUT,
@outputparam2 INT OUTPUT,
@outputparam3 INT OUTPUT)
AS
BEGIN
END;
这段代码仍然抛出异常
Expected parameter @outputparam1..."
非常感谢任何帮助,谢谢
cursor.callproc('storedprocedure_name', (first_param, second_param, an_output_param,))
然后返回值将在 "an_output_param" 变量中可用。
在你的情况下,你应该试试这个。
cursor.callproc("storedprocedure_name", ('inputparam', outputparam1, outputparam2, outputparam3,))
也试试这个
sqlcmd = """
DECLARE @outputparam1 INT, @outputparam2 INT, @outputparam3 INT
EXEC storedprocedure_name
%s, @outputparam1 OUT, @outputparam2 OUT, @outputparam3 OUT
SELECT @outputparam1, @outputparam2, @outputparam3
"""
res = conn.execute_row(sqlcmd, ('inputparam'))
我试过使用此代码:
outputparam1 = pymssql.output(int)
outputparam2=pymssql.output(int)
outputparam3=pymssql.output(int)
try:
with pymssql.connect('localhost','sa','anypassword', 'anydb') as conn:
with conn.cursor(as_dict=True) as cursor:
cursor.callproc("storedprocedure_name",('inputparam', outputparam1, outputparam2, outputparam3))
except Exception,e:
pass
这是 SQL 服务器存储过程:
ALTER PROCEDURE [dbo].[storedprocedure_name]
(@inputparam NVARCHAR(100),
@outputparam1 INT OUTPUT,
@outputparam2 INT OUTPUT,
@outputparam3 INT OUTPUT)
AS
BEGIN
END;
这段代码仍然抛出异常
Expected parameter @outputparam1..."
非常感谢任何帮助,谢谢
cursor.callproc('storedprocedure_name', (first_param, second_param, an_output_param,))
然后返回值将在 "an_output_param" 变量中可用。
在你的情况下,你应该试试这个。
cursor.callproc("storedprocedure_name", ('inputparam', outputparam1, outputparam2, outputparam3,))
也试试这个
sqlcmd = """
DECLARE @outputparam1 INT, @outputparam2 INT, @outputparam3 INT
EXEC storedprocedure_name
%s, @outputparam1 OUT, @outputparam2 OUT, @outputparam3 OUT
SELECT @outputparam1, @outputparam2, @outputparam3
"""
res = conn.execute_row(sqlcmd, ('inputparam'))