Доступ ко второму набору результатов хранимой процедуры с помощью SQL или другого обходного пути? Python \ pyodbc - PullRequest
9 голосов
/ 07 ноября 2008

Я использую python \ pyodbc и хотел бы получить доступ ко второму набору результатов хранимой процедуры. Насколько я могу судить, pyodbc не поддерживает множественные наборы результатов. Кроме того, я не могу изменить хранимую процедуру. Есть ли варианты доступа ко второму набору результатов с помощью SQL или другого обходного пути? Возможно, создать вторую хранимую процедуру, которая возвращает только второй набор результатов первого?

Ответы [ 2 ]

11 голосов
/ 24 ноября 2008

Не нужно ничего особенного. Просто используйте 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

0 голосов
/ 07 ноября 2008

Есть несколько возможных способов здесь . Если наборы результатов одинаковы, вы можете использовать метод INSERT ... EXEC. В противном случае OPENQUERY может работать.

...