【发布时间】:2016-02-05 14:50:22
【问题描述】:
我的问题与stackoverflow/9915788 密切相关。
我正在使用 pyodbc 将数据上传到外部 SQL 数据库,为此我使用该数据库的存储过程。这个过程返回两件事:
- 一个行集(如果程序运行良好,则包含文本“Success”的单行,如果失败,则包含文本“Fail”,后跟任何可用原因)
- 整数值(0 表示成功,-1 表示失败)
我设法使用上面链接中描述的方法读出了整数值,但我也想读出行集,因为我想在出现任何错误时获得更多信息。
任何想法如何做到这一点?我不是 SQL 专家,但据我了解,行集应该是“类似光标”的对象,因为它应该可以循环该行;但是如何在 select 语句中得到这个?
这就是我获取整数值的方式:
def CallStoredProc(conn, procName, *args):
sql = """SET NOCOUNT ON;
DECLARE @ret int
EXEC @ret = %s %s
SELECT @ret""" % (procName, ','.join(['?'] * len(args)))
return conn.execute(sql, args).fetchall()
但我不知道如何获取该行,它也应该在某处可用..
【问题讨论】:
-
你能告诉我们你尝试了什么
-
我添加了一个整数值读出的代码示例。对于行读数,我没有具体的想法,非常希望你能给我任何提示......
标签: python sql-server stored-procedures pyodbc