如何使用pyodbc获取SQL Server存储过程的返回值?

Mat*_*den 4 python sql pyodbc

我的团队使用基于python的wiki服务器调用SQL Server数据库上的存储过程.理想情况下,我们希望从存储过程返回整数值(1,0,-1)以显示基本结果.

根据Google Groups上2008年主题,pyodbc不支持返回值,因此替代方法是将结果选择为行并进行检查.那还是这样吗?是否有(支持和记录)编程方法来检查SQL存储过程的返回值?(如果是,请添加当前参考或示例.)

Gab*_*abe 5

我正在使用这个:

def CallStoredProc(conn, procName, *args):
    sql = """DECLARE @ret int
             EXEC @ret = %s %s
             SELECT @ret""" % (procName, ','.join(['?'] * len(args)))
    return int(conn.execute(sql, args).fetchone()[0])
Run Code Online (Sandbox Code Playgroud)

它只适用于SQL Server(或Sybase),但它是一个不错的解决方法.


Col*_*lin 4

以下是一些相关信息:http://code.google.com/p/pyodbc/wiki/StoredProcedures

听起来返回值仍然不受支持,因此您需要使用SELECT.