Как l oop через таблицы в python, которые приходят из хранимой процедуры в sql. С Пока L oop и Pyodb c? - PullRequest
1 голос
/ 11 марта 2020
cur = connection.cursor()
cur.execute("set nocount on exec SP") 
while(cur.nextset()):
    print(cur.description)

Этот код создает 10 таблиц, иногда 11. Я хочу иметь возможность использовать некоторое время l oop, потому что количество таблиц может отличаться каждый раз. Проблема с этим кодом выше в том, что он создает 9 таблиц вместо 10, потому что cur.nextset () запускается и пропускает первую таблицу.

Что я могу сделать, чтобы обойти это? Я хочу, чтобы код работал в al oop. Мне нужна лучшая функция, которая работает с модулем pyodb c.

Есть идеи?

1 Ответ

1 голос
/ 11 марта 2020

Вы можете избежать пропуска первого набора результатов, переместив чек nextset() в конец l oop:

cur.execute("set nocount on exec SP")
while True:
    # do stuff with the result set
    if not cur.nextset():
        break
print("All result sets have been processed.")
...