13

我正在使用 python\pyodbc 并希望访问存储过程的第二个结果集。据我所知,pyodbc 不支持多个结果集。此外,我无法修改存储过程。是否有任何选项可以使用 SQL 或其他解决方法访问第二个结果集?也许创建第二个存储过程,它只返回第一个结果集的第二个结果集?

4

2 回答 2

17

不需要任何花哨的东西。只需使用光标的nextset()方法


import pyodbc

db = pyodbc.connect ("")
q = db.cursor ()
q.execute ("""
SELECT TOP 5 * FROM INFORMATION_SCHEMA.TABLES
SELECT TOP 10 * FROM INFORMATION_SCHEMA.COLUMNS
""")
tables = q.fetchall ()
q.nextset ()
columns = q.fetchall ()

assert len (tables) == 5
assert len (columns) == 10

于 2008-11-24T08:31:21.097 回答
0

这里有几种可能的方法。如果结果集都相同,您也许可以使用 INSERT...EXEC 方法。否则 OPENQUERY 可能会起作用。

于 2008-11-07T19:43:29.553 回答