[英]MS SQL SERVER 2005 + SQLAlchemy + Stored Procedure + output parameter
From my python code, I am trying to execute stored procedure. 从我的python代码中,我试图执行存储过程。 Stored Procedure return integer value. 存储过程返回整数值。
CREATE PROCEDURE MY_PROC
@empID char(10),
@oldEmpList XML,
@newEmpList XML,
@Status INT OUTPUT
AS
-- sp body
SET @Status = 1
RETURN
GO
python 蟒蛇
t = text('EXEC MY_PROC :empID, :oldEmpList, :newEmpList, :Status',
bindparams=[bindparam('empID', type_=String, value='1234'),
bindparam('oldEmpList', type_=TEXT, value='<emp><id>1</id><id>2</id>'),
bindparam('newEmpList', type_=TEXT, value='<emp><id>e01</id><id>e02</id>'),
bindparam('Status', type_=Integer, value=0, isoutparam=True)])
result = CMS_DBSession.execute(t)
print result.out_parameters
it print nothing as output parameter. 它不输出任何内容作为输出参数。
How can I access output paramter 如何访问输出参数
There is a working solution here : https://groups.google.com/forum/#!topic/sqlalchemy/dn-W0rrlwxk 这里有一个可行的解决方案: https : //groups.google.com/forum/#!topic/sqlalchemy/dn-W0rrlwxk
That would give something like : 那会给像:
t = text('SET NOCOUNT ON; declare @Status int; EXEC MY_PROC :empID, :oldEmpList, :newEmpList, @Status; Select @Status; SET NOCOUNT OFF;',
bindparams=[bindparam('empID', type_=String, value='1234'),
bindparam('oldEmpList', type_=TEXT, value='<emp><id>1</id><id>2</id>'),
bindparam('newEmpList', type_=TEXT, value='<emp><id>e01</id><id>e02</id>'))
result = CMS_DBSession.execute(t)
# then get the select result
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.