У вас есть скрипт pyodb c, который должен выполнять хранимую процедуру на сервере MS SQL, но в середине работы он без ошибок отключается.
У меня есть pyodb c, который подключается к серверу MS SQL (2012), запускает хранимую процедуру (которая выполняет несколько других подчиненных хранимых процедур), которая обычно длится около 45 минут, но при запуске через pyodb c кажется, что она выходит после определенного количества времени (хотя никогда точно не соответствует тому, как долго), когда он просто завершается без предупреждения или ошибки ( не происходит при запуске вручную на самом сервере MS SQL , поэтому я думаю, что "SET ANSI_WARNINGS OFF" "это отлично ). Добавление отладочных операторов печати к подчиненным хранимым процедурам, кажется, подтверждает это: выполнение, похоже, просто заканчивается в середине выполнения (обычно через 25-26 минут). Код выглядит так ...
cnxn = pyodbc.connect(f"DSN={CONFS['odbc_dsn']};"
f"DATABASE={'mydb'};"
f"UID={CONFS['username']};PWD={CONFS['password']};"
f"MultipleActiveResultSets=True;",
autocommit=True)
cursor = cnxn.cursor()
print("\n\n\nRunning web reporting processes...")
stored_procs = [
"mydb..some_initialization_stuff",
"mydb..long_running_stored_proc"
]
cursor.commit()
for sp in stored_procs:
print(f"\n\t[{datetime.datetime.now()}] Running stored procedure {sp}")
cursor.execute(f"SET ANSI_WARNINGS OFF; exec {sp}")
# cursor.commit()
print(f"\t[{datetime.datetime.now()}] stored procedure {sp} completed")
# print(cursor.fetchall())
cursor.close()
cnxn.close()
Кто-нибудь с большим опытом работы с pyodb c знает, что может быть причиной этого? Любая другая информация / указать c шаги отладки, чтобы улучшить этот вопрос?