Мы перенесли данные с MS Access на MS SQL Server. Отчеты / запросы / формы все еще находятся в базе данных Access. Таблицы были связаны путем указания ODB без DSN C Строка подключения.
Дело в том, что когда у нас есть такой код:
Dim db As DAO.Database
Set db = CurrentDb()
BeginTran
db.Execute("update table set field=" & value & " where condition") # updating some data (query #1)
db.OpenRecordset("select * from table where field=" & value, dbOpenDynaset, dbSeeChanges) # reading just updated data (query #2)
, второй запрос завершается с ошибкой с исключением тайм-аута. . Я просмотрел активные запросы через SSM C и обнаружил, что запрос №1 был выполнен в другом сеансе, чем запрос №2 (и оба начали транзакцию)
как SQL Сервер READ COMMITTED как уровень изоляции по умолчанию, второй запрос ожидает, пока первый запрос зафиксирует / откатит транзакцию и освободит блокировку, в то время как код ожидает, пока второй запрос что-то вернет.
Есть ли способ решить эту проблему без изменения logi c (нам все еще нужно прочитать данные, которые мы только что обновили.