【问题标题】:MS SQL SERVER 2005 + SQLAlchemy + Stored Procedure + output parameterMS SQL SERVER 2005 + SQLAlchemy + 存储过程 + 输出参数
【发布时间】:2014-05-16 19:01:26
【问题描述】:

从我的 python 代码中,我正在尝试执行存储过程。存储过程返回整数值。

CREATE PROCEDURE MY_PROC
  @empID char(10),
  @oldEmpList XML,
  @newEmpList XML,
  @Status INT OUTPUT
AS 
  -- sp body
  SET @Status = 1
RETURN 
GO

蟒蛇

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

它不打印任何输出参数。

如何访问输出参数

【问题讨论】:

    标签: python sql-server stored-procedures sqlalchemy


    【解决方案1】:

    这里有一个可行的解决方案:https://groups.google.com/forum/#!topic/sqlalchemy/dn-W0rrlwxk

    这会给出类似的东西:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-02
      • 2016-11-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多