Я использую pyodbc для подключения к базе данных на моей локальной машине. У меня есть два файла .ipynb, которые отвечают за заполнение двух отношений в этой базе данных соответственно.
Есть два замечания, которые меня беспокоят:
Если один курсор связан с моей базой данных в одном файле, а другой курсор связан с базой данныхв другом файле только один курсор может выполнять DML и извлекать операторы из базы данных.
Если один курсор в одном файле вставляет кортежи в отношение, а затем отключается от базы данных,и затем курсор в другом файле пытается извлечь информацию из отношения, которое было обновлено первым курсором, информация не извлекается. Это то же самое для выполнения оператора выбора в SQL Server.
Вот обобщение того, что происходит в каждом файле:
File1.ipynb:
cursor.connect(...)
cursor = conn.cursor()
# big array of commands
commands = ["insert into ... values ...", "insert into ... values ..."]
for line in commands:
cursor.execute(line)
Распечатка содержимогокурсор показывает мне, что оператор был успешно выполнен.
Теперь в file2.ipynb:
cursor.connect(...)
cursor = conn.cursor()
cursor.execute("select * from updatedTable") # this line hangs
for row in cursor:
print(row) # if cursor is disconnected from file1, still nothing is printed
Любая помощь в разрешении нескольких соединений и подтверждении сохранения данных будет принята с благодарностью.
Обновление: необходимо выполнить cnxn.commit (), чтобы сохранить изменения.