Я делаю несколько запросов к моей БД из своего кода Python, который использует pyodbc для подключения к SQL Server.
cursor = connection.connect(connection_string)
qry1 = "Select * FROM Table1"
rows = cursor.execute(qry1).fetchall()
for row in rows:
qry2 = "Select * FROM Table2"
rows2 = cursor.execute(qry2).fetchall()
for row2 in rows2:
print row2
Это работает и успешно проходит оба запроса до завершения.
Как я могу повторно использовать объект курсора?
Я бы подумал, когда я бегу
rows2 = cursor.execute(qry2).fetchall()
Что rows
и rows2
теперь будут указывать на одно и то же (объект).
РЕДАКТИРОВАТЬ: полезная информация с сайта pyodbc
Так как это читает все строки в память, его не следует использовать, если строк много. Попробуйте вместо этого перебирать строки. Однако это полезно для освобождения курсора, чтобы можно было выполнить второй запрос перед обработкой полученных строк.
информация курсора